Envíos
Calcula las cotizaciones disponibles para un envío según origen, destino y paquetes.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
Dirección de origen o destino. Se puede enviar de tres formas mutuamente excluyentes:
| Modo | Qué enviar | Comportamiento |
|---|---|---|
| 1. Dirección existente | solo id | Reutiliza una dirección ya creada, tal cual está. |
| 2. Lugar guardado | place_id | Copia automáticamente todos los datos desde el lugar. Cualquier otro campo enviado junto se ignora. |
| 3. Dirección nueva | objeto completo | Crea una dirección nueva. |
Reglas de exclusión:
idyplace_idson excluyentes entre sí.- En el modo 3, la ubicación se indica por IDs internos (
city_id) o por nombres (city+state+country).
Dirección de origen o destino. Se puede enviar de tres formas mutuamente excluyentes:
| Modo | Qué enviar | Comportamiento |
|---|---|---|
| 1. Dirección existente | solo id | Reutiliza una dirección ya creada, tal cual está. |
| 2. Lugar guardado | place_id | Copia automáticamente todos los datos desde el lugar. Cualquier otro campo enviado junto se ignora. |
| 3. Dirección nueva | objeto completo | Crea una dirección nueva. |
Reglas de exclusión:
idyplace_idson excluyentes entre sí.- En el modo 3, la ubicación se indica por IDs internos (
city_id) o por nombres (city+state+country).
Valor declarado (opcional).
1500ID del shipper. Requerido si la org es carrier.
suministrosID del carrier. Requerido si la org es shipper.
transporte-rexCotizaciones obtenidas
No autenticado
Sin permisos
Error de validación
POST /api/v1/shipments/quotes HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 817
{
"origin": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2"
},
"destination": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2"
},
"packages": [
{
"id": 1,
"external_reference": "PKG-001",
"description": "Producto refrigerado",
"label_code": "LBL123",
"length": 50,
"width": 30,
"height": 20,
"original_length": 50,
"length_unit": "cm",
"original_width": 30,
"width_unit": "cm",
"original_height": 20,
"height_unit": "cm",
"grams": 5000,
"original_weight": 5,
"weight_unit": "kg",
"declared_value_amount": 150,
"declared_value_currency": "ARS",
"un_code": "1234",
"classification": "FOOD",
"is_flammable": false,
"is_corrosive": false,
"is_fragile": true,
"temperature_min": 2,
"temperature_max": 8,
"original_temperature_min": 2,
"temperature_min_unit": "celsius",
"original_temperature_max": 8,
"temperature_max_unit": "celsius"
}
],
"declared_value": 1500,
"shipper_id": "suministros",
"carrier_id": "transporte-rex"
}{
"quotes": [
{
"service_type_id": 5,
"service_type_name": "Entrega estándar",
"price": 1250.5,
"currency": "ARS",
"estimated_delivery_days": 3
}
]
}Crea un nuevo envío. Si la organización es carrier, shipper_id es requerido. Si es shipper, carrier_id es requerido.
Ubicación crossdock (facility, opcional). Si el tipo de servicio (según requires_pickup) pasa por un crossdock, el plan de trabajo del envío necesita saber a qué ubicación va:
con
facility(código de la ubicación), se usa esa; un código que no es una ubicación crossdock del carrier hace fallar la creación;sin
facilityy con una sola ubicación crossdock, se usa esa;sin
facilityy con más de una, el envío se crea igual (201) pero sin plan de trabajo, y la respuesta lo avisa enwarnings. Antes, ese envío se creaba y su plan de trabajo fallaba sin aviso.
Si el tipo de servicio no pasa por un crossdock, facility se ignora.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
Dirección de origen o destino. Se puede enviar de tres formas mutuamente excluyentes:
| Modo | Qué enviar | Comportamiento |
|---|---|---|
| 1. Dirección existente | solo id | Reutiliza una dirección ya creada, tal cual está. |
| 2. Lugar guardado | place_id | Copia automáticamente todos los datos desde el lugar. Cualquier otro campo enviado junto se ignora. |
| 3. Dirección nueva | objeto completo | Crea una dirección nueva. |
Reglas de exclusión:
idyplace_idson excluyentes entre sí.- En el modo 3, la ubicación se indica por IDs internos (
city_id) o por nombres (city+state+country).
Dirección de origen o destino. Se puede enviar de tres formas mutuamente excluyentes:
| Modo | Qué enviar | Comportamiento |
|---|---|---|
| 1. Dirección existente | solo id | Reutiliza una dirección ya creada, tal cual está. |
| 2. Lugar guardado | place_id | Copia automáticamente todos los datos desde el lugar. Cualquier otro campo enviado junto se ignora. |
| 3. Dirección nueva | objeto completo | Crea una dirección nueva. |
Reglas de exclusión:
idyplace_idson excluyentes entre sí.- En el modo 3, la ubicación se indica por IDs internos (
city_id) o por nombres (city+state+country).
Referencia externa del envío.
ORDER-123456Código de la ubicación crossdock a la que va el envío. Opcional; sólo se usa si el tipo de servicio requiere crossdock. Con una sola ubicación se toma sola; con más de una y sin este campo, el envío se crea sin plan de trabajo y se avisa en warnings.
XD-NORTEIdentificadores externos libres. Admite un prefijo de origen separado por dos puntos. La búsqueda exige el tag completo, prefijo incluido. La cantidad máxima se configura por entorno (20 por defecto).
["meli_order:46239360147","mercadolibre"]Valor declarado del envío.
1500Moneda del valor declarado (debe ser válida para la organización).
ARSSi el envío requiere pickup previo.
falseExample: falseSi el tracking del envío es público.
falseExample: falseID del shipper. Requerido si la org es carrier.
suministrosID del carrier. Requerido si la org es shipper.
transporte-rexID del tipo de servicio (opcional).
5Código del tipo de servicio (alternativa a service_type_id).
estandarDía prometido de entrega (Y-m-d), en la zona horaria del carrier. Si se envía con hora, se toma el día que es ese instante en la zona del carrier y se descarta la hora.
2024-05-25Envío creado
trueSólo presente si el envío se creó con avisos, por ejemplo sin plan de trabajo porque faltó facility.
No autenticado
Sin permisos
Error de validación
POST /api/v1/shipments HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1141
{
"origin": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2"
},
"destination": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2"
},
"packages": [
{
"id": 1,
"external_reference": "PKG-001",
"description": "Producto refrigerado",
"label_code": "LBL123",
"length": 50,
"width": 30,
"height": 20,
"original_length": 50,
"length_unit": "cm",
"original_width": 30,
"width_unit": "cm",
"original_height": 20,
"height_unit": "cm",
"grams": 5000,
"original_weight": 5,
"weight_unit": "kg",
"declared_value_amount": 150,
"declared_value_currency": "ARS",
"un_code": "1234",
"classification": "FOOD",
"is_flammable": false,
"is_corrosive": false,
"is_fragile": true,
"temperature_min": 2,
"temperature_max": 8,
"original_temperature_min": 2,
"temperature_min_unit": "celsius",
"original_temperature_max": 8,
"temperature_max_unit": "celsius"
}
],
"external_reference": "ORDER-123456",
"facility": "XD-NORTE",
"tags": [
"meli_order:46239360147",
"mercadolibre"
],
"declared_value": 1500,
"declared_value_currency": "ARS",
"requires_pickup": false,
"is_public": false,
"shipper_id": "suministros",
"carrier_id": "transporte-rex",
"service_type_id": 5,
"service_type_code": "estandar",
"merchant": {
"name": "Tienda Ejemplo",
"code": "TIENDA-01"
},
"promised_delivery_at": "2024-05-25"
}{
"success": true,
"shipment": {
"id": 10293023,
"ulid": "01GQBRNWN8ZS4X8K9WN5DFXH3Y",
"external_reference": "ORDER-123456",
"control_number": "CTL-789",
"serviceType": {
"id": 5,
"name": "Entrega estándar"
},
"shipper": {
"id": 35343,
"name": "Suministros de Oficina SA",
"subdomain": "suministros"
},
"carrier": {
"id": 25343,
"name": "Transporte Rex",
"subdomain": "transporte-rex"
},
"status": {
"code": "in_transit",
"name": "En tránsito",
"color": "#3B82F6",
"substatus": {
"code": "in_transit",
"name": "En tránsito"
}
},
"origin": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2",
"name": "Juan Pérez",
"street": "Calle del Bajo",
"street_number": "123",
"floor": "2",
"apartment": "B",
"reference": "Portón negro, timbre 2",
"zipcode": "8400",
"phone": "+5492944412345",
"email": "jperez@ejemplo.com",
"city": {
"id": 1875,
"name": "Bariloche"
},
"state": {
"id": 25,
"name": "Rio Negro"
},
"country": {
"id": 1,
"name": "Argentina",
"iso": "AR"
},
"geo_latitude": -41.133472,
"geo_longitude": -71.310936
},
"destination": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2",
"name": "Juan Pérez",
"street": "Calle del Bajo",
"street_number": "123",
"floor": "2",
"apartment": "B",
"reference": "Portón negro, timbre 2",
"zipcode": "8400",
"phone": "+5492944412345",
"email": "jperez@ejemplo.com",
"city": {
"id": 1875,
"name": "Bariloche"
},
"state": {
"id": 25,
"name": "Rio Negro"
},
"country": {
"id": 1,
"name": "Argentina",
"iso": "AR"
},
"geo_latitude": -41.133472,
"geo_longitude": -71.310936
},
"packages": [
{
"id": 10323223,
"label_code": "LBL123",
"external_reference": "PKG-001",
"weight": {
"value": 5000,
"original_value": 5,
"unit": "kg"
},
"grams": 5000,
"length": {
"value": 50,
"original_value": 50,
"unit": "cm"
},
"width": {
"value": 30,
"original_value": 30,
"unit": "cm"
},
"height": {
"value": 20,
"original_value": 20,
"unit": "cm"
},
"temperature_min": {
"value": 2,
"original_value": 2,
"unit": "celsius"
},
"temperature_max": {
"value": 8,
"original_value": 8,
"unit": "celsius"
},
"is_flammable": false,
"is_corrosive": false,
"is_fragile": true,
"classification": "FOOD",
"un_code": "1234",
"declared_value_amount": 150,
"declared_value_currency": "ARS"
}
],
"totals": {
"total_packages": 3,
"total_grams": 15000,
"total_cm3": 90000
},
"declared_value": 100,
"is_public": false,
"requires_pickup": true,
"related_shipment_id": 10293010,
"related_type": "return",
"finished_at": "2024-05-22T14:30:00.000Z",
"promised_delivery_at": "2024-05-21T03:00:00+00:00",
"label_printed_at": "2024-05-21T12:00:00.000Z",
"shipped_at": "2024-05-21T12:00:00.000Z",
"delivered_at": "2024-05-22T14:30:00.000Z",
"created_at": "2024-05-21T12:00:00.000Z",
"updated_at": "2024-05-21T12:00:00.000Z"
},
"warnings": [
"text"
]
}Obtiene los detalles completos de un envío.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
ID del envío
100293023Envío obtenido
Envío completo con todos sus datos
ID interno del envío.
10293023Identificador secundario del envío.
01GQBRNWN8ZS4X8K9WN5DFXH3YReferencia externa del envío.
ORDER-123456Número de control del envío.
CTL-789100falsetrueID del envío relacionado (ej. retorno o reenvío).
10293010Tipo de relación con el envío asociado.
returnFecha en que el envío fue finalizado.
2024-05-22T14:30:00.000ZInicio del día prometido en la zona horaria del carrier, expresado en UTC.
2024-05-21T03:00:00+00:002024-05-21T12:00:00.000Z2024-05-21T12:00:00.000Z2024-05-22T14:30:00.000Z2024-05-21T12:00:00.000Z2024-05-21T12:00:00.000ZNo autenticado
Sin permisos
Envío no encontrado
GET /api/v1/shipments/{shipment} HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": 10293023,
"ulid": "01GQBRNWN8ZS4X8K9WN5DFXH3Y",
"external_reference": "ORDER-123456",
"control_number": "CTL-789",
"serviceType": {
"id": 5,
"name": "Entrega estándar"
},
"shipper": {
"id": 35343,
"name": "Suministros de Oficina SA",
"subdomain": "suministros"
},
"carrier": {
"id": 25343,
"name": "Transporte Rex",
"subdomain": "transporte-rex"
},
"status": {
"code": "in_transit",
"name": "En tránsito",
"color": "#3B82F6",
"substatus": {
"code": "in_transit",
"name": "En tránsito"
}
},
"origin": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2",
"name": "Juan Pérez",
"street": "Calle del Bajo",
"street_number": "123",
"floor": "2",
"apartment": "B",
"reference": "Portón negro, timbre 2",
"zipcode": "8400",
"phone": "+5492944412345",
"email": "jperez@ejemplo.com",
"city": {
"id": 1875,
"name": "Bariloche"
},
"state": {
"id": 25,
"name": "Rio Negro"
},
"country": {
"id": 1,
"name": "Argentina",
"iso": "AR"
},
"geo_latitude": -41.133472,
"geo_longitude": -71.310936
},
"destination": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2",
"name": "Juan Pérez",
"street": "Calle del Bajo",
"street_number": "123",
"floor": "2",
"apartment": "B",
"reference": "Portón negro, timbre 2",
"zipcode": "8400",
"phone": "+5492944412345",
"email": "jperez@ejemplo.com",
"city": {
"id": 1875,
"name": "Bariloche"
},
"state": {
"id": 25,
"name": "Rio Negro"
},
"country": {
"id": 1,
"name": "Argentina",
"iso": "AR"
},
"geo_latitude": -41.133472,
"geo_longitude": -71.310936
},
"packages": [
{
"id": 10323223,
"label_code": "LBL123",
"external_reference": "PKG-001",
"weight": {
"value": 5000,
"original_value": 5,
"unit": "kg"
},
"grams": 5000,
"length": {
"value": 50,
"original_value": 50,
"unit": "cm"
},
"width": {
"value": 30,
"original_value": 30,
"unit": "cm"
},
"height": {
"value": 20,
"original_value": 20,
"unit": "cm"
},
"temperature_min": {
"value": 2,
"original_value": 2,
"unit": "celsius"
},
"temperature_max": {
"value": 8,
"original_value": 8,
"unit": "celsius"
},
"is_flammable": false,
"is_corrosive": false,
"is_fragile": true,
"classification": "FOOD",
"un_code": "1234",
"declared_value_amount": 150,
"declared_value_currency": "ARS"
}
],
"totals": {
"total_packages": 3,
"total_grams": 15000,
"total_cm3": 90000
},
"declared_value": 100,
"is_public": false,
"requires_pickup": true,
"related_shipment_id": 10293010,
"related_type": "return",
"finished_at": "2024-05-22T14:30:00.000Z",
"promised_delivery_at": "2024-05-21T03:00:00+00:00",
"label_printed_at": "2024-05-21T12:00:00.000Z",
"shipped_at": "2024-05-21T12:00:00.000Z",
"delivered_at": "2024-05-22T14:30:00.000Z",
"created_at": "2024-05-21T12:00:00.000Z",
"updated_at": "2024-05-21T12:00:00.000Z"
}Retorna el historial de estados del envío ordenado cronológicamente.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
ID del envío
100293023Historial de seguimiento
No autenticado
Sin permisos
Envío no encontrado
GET /api/v1/shipments/{shipment}/tracking HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"tracking": [
{
"status": {
"code": "in_transit",
"name": "En tránsito"
},
"substatus": {
"code": "in_transit",
"name": "En tránsito"
},
"occurred_at": "2024-05-21T12:00:00Z",
"comments": "El envío ha sido despachado",
"metadata": {}
}
]
}Retorna el historial de seguimiento para múltiples envíos en una sola llamada.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
IDs de los envíos a consultar.
[100293023,100293024,100293025]Seguimiento masivo
No autenticado
Error de validación
POST /api/v1/shipments/tracking/bulk HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 45
{
"shipments": [
100293023,
100293024,
100293025
]
}{
"tracking": [
{
"shipment_id": 100293023,
"tracking": [
{
"status": {
"code": "in_transit",
"name": "En tránsito"
},
"substatus": {
"code": "in_transit",
"name": "En tránsito"
},
"occurred_at": "2024-05-21T12:00:00Z",
"comments": "El envío ha sido despachado",
"metadata": {}
}
]
}
]
}Genera y retorna las etiquetas del envío en formato PDF, PNG o ZPL.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
ID del envío
100293023Formato de salida de la etiqueta
Modo de salida: base64 retorna el archivo codificado en base64 (por defecto), stream lo retorna como stream, download como descarga.
base64Valores posibles: Etiquetas generadas. Para output=base64 (por defecto), retorna JSON con las etiquetas codificadas. Para output=stream o download, retorna el archivo binario directamente (no JSON).
Respuesta JSON cuando output=base64 (por defecto).
No autenticado
Sin permisos
Envío no encontrado
Formato inválido
GET /api/v1/shipments/{shipment}/documentation/labels?format=pdf HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": {
"file": "Ynl0ZXM=",
"files": [
"Ynl0ZXM="
]
}
}Retorna la lista de archivos adjuntos de todas las tareas del envío.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
ID del envío
100293023Lista de adjuntos
No autenticado
Sin permisos
Envío no encontrado
GET /api/v1/shipments/{shipment}/attachments HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"attachments": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"group": "invoice",
"name": "Factura.pdf",
"mime_type": "application/pdf",
"size": 102400,
"created_at": "2024-05-21T12:00:00.000Z"
}
]
}Retorna el contenido de un adjunto específico del envío, codificado en base64.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
ID del envío
100293023UUID del adjunto
123e4567-e89b-12d3-a456-426614174000Adjunto obtenido con contenido en base64
Adjunto con contenido en base64
123e4567-e89b-12d3-a456-426614174000invoiceFactura.pdfapplication/pdfTamaño en bytes.
1024002024-05-21T12:00:00.000ZContenido del archivo codificado en base64.
No autenticado
Sin permisos
Adjunto no encontrado
GET /api/v1/shipments/{shipment}/attachments/{attachment} HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"group": "invoice",
"name": "Factura.pdf",
"mime_type": "application/pdf",
"size": 102400,
"created_at": "2024-05-21T12:00:00.000Z",
"content": "Ynl0ZXM="
}Cancela un envío. Cancela automáticamente todas las tareas y workflows pendientes asociados.
Token Bearer generado en la sección de integraciones de tu organización en Zipnova Rutas.
ID del envío
100293023Envío cancelado
trueNo autenticado
Sin permisos
Envío no encontrado
El envío no puede cancelarse en su estado actual
POST /api/v1/shipments/{shipment}/cancel HTTP/1.1
Host: mi-organizacion.routes.zipnova.app
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"success": true,
"shipment": {
"id": 10293023,
"ulid": "01GQBRNWN8ZS4X8K9WN5DFXH3Y",
"external_reference": "ORDER-123456",
"control_number": "CTL-789",
"serviceType": {
"id": 5,
"name": "Entrega estándar"
},
"shipper": {
"id": 35343,
"name": "Suministros de Oficina SA",
"subdomain": "suministros"
},
"carrier": {
"id": 25343,
"name": "Transporte Rex",
"subdomain": "transporte-rex"
},
"status": {
"code": "in_transit",
"name": "En tránsito",
"color": "#3B82F6",
"substatus": {
"code": "in_transit",
"name": "En tránsito"
}
},
"origin": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2",
"name": "Juan Pérez",
"street": "Calle del Bajo",
"street_number": "123",
"floor": "2",
"apartment": "B",
"reference": "Portón negro, timbre 2",
"zipcode": "8400",
"phone": "+5492944412345",
"email": "jperez@ejemplo.com",
"city": {
"id": 1875,
"name": "Bariloche"
},
"state": {
"id": 25,
"name": "Rio Negro"
},
"country": {
"id": 1,
"name": "Argentina",
"iso": "AR"
},
"geo_latitude": -41.133472,
"geo_longitude": -71.310936
},
"destination": {
"id": "01J9X2K3M4N5P6Q7R8S9T0V1W2",
"name": "Juan Pérez",
"street": "Calle del Bajo",
"street_number": "123",
"floor": "2",
"apartment": "B",
"reference": "Portón negro, timbre 2",
"zipcode": "8400",
"phone": "+5492944412345",
"email": "jperez@ejemplo.com",
"city": {
"id": 1875,
"name": "Bariloche"
},
"state": {
"id": 25,
"name": "Rio Negro"
},
"country": {
"id": 1,
"name": "Argentina",
"iso": "AR"
},
"geo_latitude": -41.133472,
"geo_longitude": -71.310936
},
"packages": [
{
"id": 10323223,
"label_code": "LBL123",
"external_reference": "PKG-001",
"weight": {
"value": 5000,
"original_value": 5,
"unit": "kg"
},
"grams": 5000,
"length": {
"value": 50,
"original_value": 50,
"unit": "cm"
},
"width": {
"value": 30,
"original_value": 30,
"unit": "cm"
},
"height": {
"value": 20,
"original_value": 20,
"unit": "cm"
},
"temperature_min": {
"value": 2,
"original_value": 2,
"unit": "celsius"
},
"temperature_max": {
"value": 8,
"original_value": 8,
"unit": "celsius"
},
"is_flammable": false,
"is_corrosive": false,
"is_fragile": true,
"classification": "FOOD",
"un_code": "1234",
"declared_value_amount": 150,
"declared_value_currency": "ARS"
}
],
"totals": {
"total_packages": 3,
"total_grams": 15000,
"total_cm3": 90000
},
"declared_value": 100,
"is_public": false,
"requires_pickup": true,
"related_shipment_id": 10293010,
"related_type": "return",
"finished_at": "2024-05-22T14:30:00.000Z",
"promised_delivery_at": "2024-05-21T03:00:00+00:00",
"label_printed_at": "2024-05-21T12:00:00.000Z",
"shipped_at": "2024-05-21T12:00:00.000Z",
"delivered_at": "2024-05-22T14:30:00.000Z",
"created_at": "2024-05-21T12:00:00.000Z",
"updated_at": "2024-05-21T12:00:00.000Z"
}
}Última actualización