Organización
Recibos
Un recibo agrupa las piezas P1, P2… que comparten código.
El id del recibo es el id del primer paquete. GET, PATCH y DELETE aceptan el id de cualquier pieza. La respuesta usa el id de P1. DELETE de un paquete borra una pieza. DELETE de un recibo borra todas.
Métodos
| Método | Ruta | Permiso |
|---|---|---|
| GET | /org-api/v1/receipts | packages:read |
| GET | /org-api/v1/receipts/{id} | packages:read |
| POST | /org-api/v1/receipts | packages:write o organization:read |
| PATCH | /org-api/v1/receipts/{id} | packages:write o organization:read |
| DELETE | /org-api/v1/receipts/{id} | packages:write o organization:read |
Listar
Query: page, limit, trackingNumber, locationId, customerId, shipperId, itemStatusId. Cada fila es un recibo y no incluye packages.
Crear
Hacen falta registrationDate, locationId, itemStatusId y packages. Cada pieza pide trackingNumber. Sin externalReceiptCode el servidor reserva un WR. Hasta 50 piezas. El orden de la lista es P1, P2… si no envías receiptPackageIndex.
{
"registrationDate": "2026-10-27T15:04:00.000Z",
"locationId": "6a1d0c44-8b22-4f90-a113-9e2c4d6b88a1",
"itemStatusId": "0b6c1a22-4e10-4a77-9c31-2d8e5b7a11c0",
"packages": [
{ "trackingNumber": "1Z111", "weight": 1 },
{ "trackingNumber": "1Z222", "weight": 2 }
]
}Actualizar
La cabecera se aplica a todas las piezas. packages cambia una pieza que ya existe y exige su id. No agrega ni quita piezas.
Borrar
{
"id": "c3a1e8b2-6f40-4a11-9d22-1b0c7e5a44d8",
"deleted": true,
"deletedCount": 2
}