Desarrollador
Recibos
CRUD de recibos. Un recibo agrupa los paquetes P1, P2… del mismo código.
Un recibo es el grupo de paquetes que comparten código (WR… o WHR…). El id del recibo es el id del primer paquete. retrieve, update y delete aceptan el id de cualquier pieza y la respuesta usa el de P1. packages.delete borra una pieza. receipts.delete borra el recibo completo.
Métodos
| Método | HTTP | Scope |
|---|---|---|
| receipts.list() | GET /org-api/v1/receipts | packages:read |
| receipts.retrieve(id) | GET /org-api/v1/receipts/:id | packages:read |
| receipts.create(body) | POST /org-api/v1/receipts | packages:write o organization:read |
| receipts.update(id, body) | PATCH /org-api/v1/receipts/:id | packages:write o organization:read |
| receipts.delete(id) | DELETE /org-api/v1/receipts/:id | packages:write o organization:read |
Listar
Cada fila es un recibo. El listado no trae packages. page empieza en 1.
const page = await traky.receipts.list({
page: 1,
limit: 20,
trackingNumber: "WR00001204",
});| Query | Tipo | Descripción |
|---|---|---|
| page | number | Página. Por defecto 1. |
| limit | number | Tamaño de página. |
| trackingNumber | string | Filtra por rastreo o código de recibo. |
| locationId | string | Sucursal. |
| customerId | string | Destinatario. |
| shipperId | string | Remitente. |
| itemStatusId | string | Estado. |
Crear
El cuerpo es ReceiptCreate. Hacen falta registrationDate, locationId, itemStatusId y packages con al menos un tracking. Sin externalReceiptCode el API reserva un WR. La primera pieza es P1. El recibo acepta hasta 50 piezas.
const receipt = await traky.receipts.create({
registrationDate: new Date().toISOString(),
locationId: office.id,
itemStatusId: status.id,
warehouseComments: "Frágil",
packages: [
{ trackingNumber: "1Z111", weight: 1, comments: "Ropa" },
{ trackingNumber: "1Z222", weight: 2 },
],
});Actualizar
Los campos de la cabecera se copian a todas las piezas. packages cambia una pieza que ya existe, por su id. No agrega ni quita piezas: para P2 usa packages.create con receiptSerialNumber y para quitar una pieza usa packages.delete.
await traky.receipts.update(receipt.id, {
comments: "Ropa",
packages: [{ id: second.id, weight: 4 }],
});Borrar
const removed = await traky.receipts.delete(receipt.id);{
"id": "c3a1e8b2-6f40-4a11-9d22-1b0c7e5a44d8",
"deleted": true,
"deletedCount": 2
}Atributos del recibo
| Atributo | Tipo | Descripción |
|---|---|---|
| id | string | Id de P1. |
| receiptNumber | string | null | Código WR o warehouse WHR…. |
| serialNumber | number | null | Secuencia del recibo. |
| packageCount | number | Cantidad de piezas. |
| totalWeight | number | Suma de pesos. |
| totalPieces | number | Suma de piezas. |
| totalDeclaredValue | number | Suma del valor declarado. |
| isLocked | boolean | True si el recibo no se puede editar. |
| trackingNumbers | string | null | Rastreos unidos por coma. |
| packages | Package[] | Piezas. Solo en retrieve, create y update. |