Passports

Batch-create passports (up to 100 per call).

Create up to 100 passports in one call. Each item carries the same body shape as the single-create endpoint; partial-success per item — each gets its own status in the response array.

The whole batch consumes N writes upfront against the daily-write budget; if that would overflow, the entire batch returns 429 (no partial billing). Same applies to DPP overage at the batch level — when the DPP quota would be exceeded the batch returns 402 with overage_required, and confirmOverage: true accepts the overage charge for the whole batch.

Each item may carry its own lineage block (second-life battery successors). A lineage rule violation fails that item only: its result has status: "error" and error starting with the rule code, e.g. duplicate_predecessor: ….

post/api/v1/passports/batch

Request

  • Base URL: https://app.tracepass.eu
  • URL: https://app.tracepass.eu/api/v1/passports/batch
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://app.tracepass.eu/api/oauth/authorize, token URL https://app.tracepass.eu/api/oauth/token, scopes: passports:write)

Headers

Idempotency-Keystring

UUID v4 (or any opaque string ≤ 64 chars) per logical operation. The platform stores the first response for 24 hours and replays it on the same key + same workspace. Reusing the same key with a different request body returns 422.

Request body

confirmOverageboolean

Example request

{
  "passports": [
    {
      "productId": "6650a1b2c3d4e5f6a7b8c9d0",
      "identifier": {
        "gtin": "04012345000015"
      },
      "gs1": {
        "gtin": "04012345000015"
      },
      "lineage": {
        "predecessors": [
          {
            "internalPassportId": "6650a1b2c3d4e5f6a7b8c9d0"
          }
        ]
      }
    }
  ]
}

Response

Partial-success batch result.

Example response

{
  "results": [
    {
      "data": {
        "_id": "6650a1b2c3d4e5f6a7b8c9d0",
        "companyId": "6650a1b2c3d4e5f6a7b8c9d0",
        "productId": "6650a1b2c3d4e5f6a7b8c9d0",
        "templateId": "6650a1b2c3d4e5f6a7b8c9d0",
        "identifier": {
          "gtin": "04012345000015"
        },
        "gs1": {
          "gtin": "04012345000015",
          "serialNumber": "BP-48V-100-000001",
          "digitalLinkUri": "https://id.tracepass.eu/p/01/04012345000015/21/BP-48V-100-000001"
        },
        "lineage": {
          "predecessors": [
            {
              "internalPassportId": "6650a1b2c3d4e5f6a7b8c9d0"
            }
          ]
        },
        "successors": [
          {
            "passportId": "6650a1b2c3d4e5f6a7b8c9d0"
          }
        ]
      },
      "warnings": [
        {
          "path": [
            "operatorIdentifier"
          ],
          "message": "LEI 353800SZHNPYLZTIX835 has lapsed: its GLEIF record has not been renewed. It still identifies the entity."
        }
      ]
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.