ПерфектПак · API v1.1
openapi.yaml ↗

Отгрузки: узнать, что поставку приняли на СЦ

Зачем

Отгрузка (у WB в кабинете — «поставка WB») считается по-настоящему принятой не в момент, когда мы её закрыли и передали перевозчику, а когда маркетплейс отсканировал её на своём складе или сортировочном центре. Это единственный момент, юридически значимый для приёмки-передачи — до него груз формально ещё в пути и претензии по нему адресуются иначе, чем после.

Статусы отгрузки

ASSEMBLINGHANDED_OVERACCEPTED

curl "https://api.perfektpak.ru/v1/shipments?marketplace=WB&status=HANDED_OVER" \
  -H "Authorization: Bearer $PP_KEY"
{
  "items": [
    { "id": "s_wb_2026_0825_12", "marketplace": "WB", "external_id": "WB-1082345671",
      "name": "Поставка 25.08 — кофе и косметика", "status": "HANDED_OVER", "status_label": "Передана в доставку",
      "orders_count": 180, "created_at": "2026-08-25T09:00:00+03:00",
      "closed_at": "2026-08-25T18:30:00+03:00", "accepted_at": null }
  ],
  "total": 41,
  "next_cursor": null
}

Подписаться на переход в ACCEPTED

Вместо того чтобы периодически перечитывать список отгрузок в статусе HANDED_OVER, подпишитесь на shipment.status_changed (регистрация и формат — на странице «Вебхуки») и реагируйте только на переход в ACCEPTED:

def handle_shipment_status_changed(event):
    shipment = event["data"]["object"]
    if shipment["status"] == "ACCEPTED":
        mark_delivered_to_marketplace(shipment["external_id"], accepted_at=shipment["accepted_at"])

Без вебхука — тот же признак виден и по одной отгрузке напрямую:

curl https://api.perfektpak.ru/v1/shipments/s_wb_2026_0825_12 \
  -H "Authorization: Bearer $PP_KEY"

accepted_atnull, пока маркетплейс не отсканировал отгрузку, и заполняется один раз, когда это происходит; поле присутствует в ответе всегда (nullable), в отличие от, например, article у товара, которое просто отсутствует в ответе, если артикул не заведён — разница разобрана в FAQ на странице «Быстрый старт».

Что дальше

Отгрузка состоит из заказов — если вам нужен статус каждого заказа отдельно, а не только факт приёма всей партии, смотрите гайд «Статусы заказов FBS в CRM».