TracePass
Паспорти

Масово създаване на паспорти

Създаване на до 100 паспорта в един повикване. Всеки елемент носи същата форма като endpoint-а за единично създаване (`{ productId, gs1: { gtin, serialNumber }, parties?, confirmOverage? }`). Частичен успех на елемент — всеки получава свой статус в масива на отговора.

POST/api/v1/passports/batch
Изтегли OpenAPI 3.1
POST/api/v1/passports/batch

Масово създаване на паспорти

Създаване на до 100 паспорта в един повикване. Всеки елемент носи същата форма като endpoint-а за единично създаване (`{ productId, gs1: { gtin, serialNumber }, parties?, confirmOverage? }`). Частичен успех на елемент — всеки получава свой статус в масива на отговора.

Целият batch консумира N записвания предварително срещу дневния бюджет; ако това би прелязло, целият batch връща 429 (без частично таксуване). Същото важи за DPP overage flow на ниво batch — когато DPP квотата ще бъде надвишена, batch-ът връща 402 с `overage_required` и `confirmOverage: true` приема overage таксата за целия batch.

Idempotency-Key важи за целия batch — повтаряне на същия ключ връща оригиналния пълен резултатен масив. Лимитът е 100 елемента на повикване (съответства на batch ceiling-а на Stripe).

Хедъри

  • Authorizationзадължително

    string

    `Bearer <api-key>`.

  • Idempotency-Key

    string

    UUID v4 — важи за целия batch.

Полета в тялото

  • passportsзадължително

    Array<CreatePassportInput> (1-100)

    1–100 обекта паспорти, всеки във формата на single-create.

Заявка

curl -sS -X POST https://app.tracepass.eu/api/v1/passports/batch \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Idempotency-Key: 7b4f1e2c-9a3d-4e5b-8c1a-2d3e4f5a6b7c" \
  -H "Content-Type: application/json" \
  -d '{
    "passports": [
      { "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000015", "serialNumber": "BP-48V-100-000001" } },
      { "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000015", "serialNumber": "BP-48V-100-000002" } },
      { "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000015", "serialNumber": "BP-48V-100-000003" } }
    ]
  }'

Отговор

{
  "results": [
    { "index": 0, "status": "created", "data": { "_id": "...", "gs1": { "...": "..." }, "status": "draft" } },
    { "index": 1, "status": "error", "error": "Serial number already exists for this GTIN" },
    { "index": 2, "status": "created", "data": { "...": "..." } }
  ],
  "summary": { "created": 2, "errors": 1, "total": 3 }
}