Method POST/distributor-portal/shipments/{shipment_id}/receive

Confirm the reception of a shipment, optionally scanning cartons or units.

On this page

You confirm you received a shipment. The call records a reception event with the date and your identity; scanning cartons or units is optional, a confirmation with no scan at all is just as valid.

You can confirm the same shipment in several passes (part of it received today, the rest tomorrow): each call adds its own confirmation, none replaces another. A code already recorded by an earlier confirmation of the SAME shipment is silently ignored if scanned again — re-scanning the same carton twice, by mistake or by a replayed call, never counts it twice. A shipment accepts at most 500 confirmation calls in total; past that, the call is refused rather than letting the table grow without bound.

#Authorization

Session of a distributor contact account. See GET /distributor-portal/me. Same isolation rule as the read: another distributor's shipment answers 404.

#Rate limit

30 calls a minute, shared with the rest of the distributor portal. This is the only call of the portal that writes.

#Path parameters

ParameterTypeDescription
shipment_idintegerThe shipment's id, path.

#Request body

FieldTypeDescription
scanned_identifiersarray of stringCarton or unit codes scanned. Optional, at most 1000.
notestring or nullFree remark, at most 500 characters. Optional.

#Example request

curl
curl -i -X POST "https://api.sealtrust.io/v1/distributor-portal/shipments/318/receive" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.0000000000000000000000000000.0000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{"scanned_identifiers": ["DSP000000123", "DSP000000124"], "note": "Carton slightly damaged"}'

#Example response

HTTP 201.

JSON
{
  "reception_id": 7,
  "shipment_id": 318,
  "received_at": "2026-10-05T08:30:00Z",
  "received_by": "Camille Exemple",
  "scanned_count": 2
}

#Errors

CodeConditionWhat to do
400More than 1000 scanned codes in one call.Spread the scans over several confirmations.
400This shipment already holds 500 confirmations.Contact support; this ceiling is not meant to be reached in ordinary use.
401Token missing, unreadable or expired.Sign in again.
403Account with no active distributor access.See GET /distributor-portal/me.
404Unknown shipment, or one of another distributor.Check the id in GET /distributor-portal/shipments.
422Malformed body: an undeclared field (the schema refuses unknown fields), or note past 500 characters.Send only scanned_identifiers and note.
429Rate limit exceeded.Wait the delay in Retry-After.

#See also

Your answer opens a pre-filled email in your mail app, addressed to contact@sealtrust.io. You read it over before sending it.

Suggest a correctionReport a problem