Desarrollador

Paquetes

CRUD de paquetes: listar, leer, crear, actualizar y borrar.

Un paquete es una pieza (P1, P2…). Sin receiptSerialNumber el alta abre un recibo WR nuevo y el paquete queda como P1. Para colgar P2 en un recibo ya creado, envía su receiptSerialNumber y receiptPackageIndex. packages.delete borra solo esa pieza.

Métodos

MétodoHTTPScope
packages.list()GET /org-api/v1/packagespackages:read
packages.retrieve(id)GET /org-api/v1/packages/:idpackages:read
packages.create(body)POST /org-api/v1/packagespackages:write o organization:read
packages.update(id, body)PATCH /org-api/v1/packages/:idpackages:write o organization:read
packages.delete(id)DELETE /org-api/v1/packages/:idpackages:write o organization:read
packages.listFromMisiil()GET /org-api/v1/marketplaces/misiil/packagespackages:read

Listar

list() devuelve como máximo 500 paquetes, del más reciente al más antiguo. retrieve(id) devuelve uno, con la misma forma.

Llamadats
const packages = await traky.packages.list();
const one = await traky.packages.retrieve(packages.data[0].id);

Envoltorio

AtributoTipoDescripción
dataPackage[]Paquetes exportados.
totalnumberCantidad de objetos en data.
exportedAtstringFecha ISO 8601 de la exportación.

Atributos del paquete

AtributoTipoDescripción
idstringUUID del paquete.
packageTypestringPrefijo interno del recibo.
serialNumbernumber | nullSecuencia del recibo.
receiptPackageIndexnumberÍndice dentro del recibo. 1 es P1.
receiptNumberstring | nullCódigo de recibo. Secuencia WR o warehouse de Misiil.
packageNumberstring | nullCódigo de paquete: recibo más P1, P2….
trackingNumberstring | nullNúmero de rastreo.
trackingNormalizedstring | nullRastreo en mayúsculas y sin espacios.
weightnumberPeso.
weightUnitstring | nullkg o lb.
declaredValuenumberValor declarado.
heightnumberAlto.
widthnumberAncho.
lengthnumberLargo.
dimensionUnitstring | nullcm o in.
piecesnumberCantidad de piezas.
volumetricWeightnumberPeso volumétrico.
chargeableWeightnumberPeso cobrable.
commentsstring | nullDescripción de la mercancía.
warehouseCommentsstring | nullComentario de bodega.
isConsolidatedbooleanTrue si está consolidado.
isGroupedbooleanTrue si entró en un lote.
guideIdstring | nullGuía ligada, si existe.
saleIdstring | nullVenta ligada, si existe.
rackCodestring | nullCódigo del rack.
registrationDatestringFecha de registro, ISO 8601.
createdAtstringFecha de creación, ISO 8601.
updatedAtstringFecha de actualización, ISO 8601.
itemStatusobject | nullEstado. id y name.
customerobject | nullDestinatario.
shipperobject | nullRemitente.
locationobject | nullSucursal actual.
warehouseobject | nullBodega asociada.

JSON de retorno

jsonjson
{
  "data": [
    {
      "id": "c3a1e8b2-6f40-4a11-9d22-1b0c7e5a44d8",
      "packageType": "WR",
      "serialNumber": 1204,
      "receiptPackageIndex": 1,
      "receiptNumber": "WR00001204",
      "packageNumber": "WR00001204P1",
      "trackingNumber": "1Z999AA10123456784",
      "trackingNormalized": "1Z999AA10123456784",
      "weight": 4.5,
      "weightUnit": "lb",
      "declaredValue": 80,
      "height": 20,
      "width": 15,
      "length": 30,
      "dimensionUnit": "cm",
      "pieces": 1,
      "volumetricWeight": 5.1,
      "chargeableWeight": 5.1,
      "comments": "Ropa",
      "warehouseComments": null,
      "isConsolidated": false,
      "isGrouped": false,
      "guideId": null,
      "saleId": null,
      "rackCode": null,
      "registrationDate": "2026-10-20T15:04:00.000Z",
      "createdAt": "2026-10-20T15:04:11.000Z",
      "updatedAt": "2026-10-24T12:10:00.000Z",
      "itemStatus": { "id": "st_recibido", "name": "Recibido" },
      "customer": null,
      "shipper": null,
      "location": null,
      "warehouse": null
    }
  ],
  "total": 1,
  "exportedAt": "2026-10-24T17:15:00.000Z"
}

Crear

El cuerpo es PackageCreate. Hacen falta registrationDate, trackingNumber, itemStatusId y locationId. itemStatusId sale de statuses.list({ category: "package" }) y locationId de offices.list(). El API asigna el tipo WR.

Alta de P1ts
const created = await traky.packages.create({
  registrationDate: new Date().toISOString(),
  trackingNumber: "1Z999",
  itemStatusId: "00000000-0000-4000-8000-000000000001",
  locationId: "00000000-0000-4000-8000-000000000002",
  weight: 2,
  comments: "Ropa",
});
Agregar P2 a un recibo existentets
await traky.packages.create({
  registrationDate: new Date().toISOString(),
  trackingNumber: "1Z222",
  itemStatusId: "00000000-0000-4000-8000-000000000001",
  locationId: "00000000-0000-4000-8000-000000000002",
  receiptSerialNumber: 1204,
  receiptPackageIndex: 2,
});

Cuerpo de alta

AtributoTipoDescripción
registrationDatestringObligatorio. ISO 8601.
trackingNumberstringObligatorio en el SDK.
itemStatusIdstringObligatorio. Estado de paquete.
locationIdstringObligatorio. Sucursal.
weightnumberPeso.
declaredValuenumberValor declarado.
heightnumberAlto.
widthnumberAncho.
lengthnumberLargo.
piecesnumberCantidad de piezas. Mínimo 1.
commentsstringDescripción de la mercancía.
warehouseCommentsstringNota de bodega.
customerIdstringDestinatario.
shipperIdstringRemitente.
warehouseIdstringBodega. Sale de offices.list({ type: "warehouse" }).
externalReceiptCodestringWarehouse del proveedor (WHR…). No consume la secuencia WR.
receiptSerialNumbernumberSerial de un recibo ya creado, para P2, P3….
receiptPackageIndexnumber1 es P1. Por defecto 1.

Actualizar

update envía solo los campos que cambian. El cuerpo es PackageWrite. El id va en el primer argumento. propagatePartiesToReceiptSiblings en true copia remitente y destinatario al resto del recibo.

Cambiots
await traky.packages.update(created.id, {
  warehouseComments: "Retener",
  weight: 2.4,
});

Borrar

delete elimina ese paquete. El resto del recibo se queda.

tsts
const removed = await traky.packages.delete(created.id);
JSON de retornojson
{
  "id": "c3a1e8b2-6f40-4a11-9d22-1b0c7e5a44d8",
  "deleted": true
}

Buscar en la documentación

Buscar páginas de la documentación