Descargar Entregas
Permite obtener el listado de entregas gestionadas que aún no han sido transmitidas al ERP, incluyendo el detalle de los ítems de cada entrega. Este endpoint está diseñado para que los sistemas contables de los clientes puedan descargar las entregas generadas en RSales e inyectarlas en sus propios sistemas. Soporta filtros por cliente, vendedor y fecha reportada, así como ordenamiento configurable y paginación.
Método: GET
Endpoint
Sección titulada «Endpoint»https://api.ventasremotas.com/v1/deliveries/pendingEncabezados de la solicitud
Sección titulada «Encabezados de la solicitud»| Header | Valor | Descripción | Requerido |
|---|---|---|---|
Accept | application/json | Indica que la respuesta debe estar en formato JSON | No |
Subscription-Key | {subscription_key} | Clave de suscripción para acceder a la API | Sí |
Authorization | Bearer {access_token} | Token de acceso obtenido del endpoint /token | Sí |
Parámetros de Consulta (Query Parameters)
Sección titulada «Parámetros de Consulta (Query Parameters)»Todos los parámetros son opcionales. Si no se especifican, se retornan todas las entregas pendientes de transmisión con la paginación por defecto.
Filtros
Sección titulada «Filtros»| Parámetro | Tipo | Descripción |
|---|---|---|
client_id | String | Filtra por código exacto de cliente. Longitud máxima: 18 caracteres. |
seller_id | String | Filtra por código exacto de vendedor. Longitud máxima: 18 caracteres. |
reported_from | Date | Retorna entregas cuya fecha reportada es mayor o igual a este valor. Formato: YYYY-MM-DD. |
Ordenamiento
Sección titulada «Ordenamiento»| Parámetro | Tipo | Descripción |
|---|---|---|
sort | String | Campo y dirección de ordenamiento. Por defecto: fecha reportada descendente. |
Campos de ordenamiento disponibles
Sección titulada «Campos de ordenamiento disponibles»| Valor | Descripción |
|---|---|
reported_at | Ordena por fecha reportada ascendente (ASC) |
-reported_at | Ordena por fecha reportada descendente (DESC) |
Paginación
Sección titulada «Paginación»| Parámetro | Tipo | Por defecto | Restricciones | Descripción |
|---|---|---|---|---|
page | Number | 1 | Mínimo: 1 | Número de página (1-indexed) |
limit | Number | 100 | Mínimo: 1, Máximo: 500 | Cantidad de resultados por página |
Ejemplo de Solicitud
Sección titulada «Ejemplo de Solicitud»Petición básica (sin filtros)
Sección titulada «Petición básica (sin filtros)»curl -X GET "https://api.ventasremotas.com/v1/deliveries/pending" \ -H "Accept: application/json" \ -H "Subscription-Key: tu-subscription-key" \ -H "Authorization: Bearer tu-access-token"Petición con filtro por cliente
Sección titulada «Petición con filtro por cliente»curl -X GET "https://api.ventasremotas.com/v1/deliveries/pending?client_id=CLI-001" \ -H "Accept: application/json" \ -H "Subscription-Key: tu-subscription-key" \ -H "Authorization: Bearer tu-access-token"Petición con filtro de fecha y paginación
Sección titulada «Petición con filtro de fecha y paginación»curl -X GET "https://api.ventasremotas.com/v1/deliveries/pending?reported_from=2026-01-01&page=1&limit=50" \ -H "Accept: application/json" \ -H "Subscription-Key: tu-subscription-key" \ -H "Authorization: Bearer tu-access-token"Petición con múltiples filtros y ordenamiento
Sección titulada «Petición con múltiples filtros y ordenamiento»curl -X GET "https://api.ventasremotas.com/v1/deliveries/pending?client_id=CLI-001&seller_id=VEN-001&reported_from=2026-01-01&sort=reported_at&page=1&limit=200" \ -H "Accept: application/json" \ -H "Subscription-Key: tu-subscription-key" \ -H "Authorization: Bearer tu-access-token"Ejemplo de Respuesta
Sección titulada «Ejemplo de Respuesta»{ "data": [ { "code": "ENT-001", "client_id": "CLI-001", "seller_id": "VEN-001", "status_code": "2", "status_description": "Entregado", "news_code": null, "news": null, "scheduled_date": "2026-01-02T00:00:00", "scheduled_end_date": "2026-01-02T18:00:00", "reported_at": "2026-01-02T09:30:00", "observations": "Entrega realizada", "latitude": 4.7109886, "longitude": -74.072092, "cell_info": "Operador XYZ - 4G", "transmission_date": null, "management_code": "GES-001", "visit_time": 35.0, "manifest": "MAN-001", "weight": 10.5, "volume": 2.25, "created_at": "2026-01-01T15:00:00", "updated_at": null, "add_route_planner": "Y", "planned_duration": 30, "visit_priority": "ALTA", "seller_observations": null, "rescheduling_cause": null, "rescheduling_observations": null, "address": "Calle 100 #15-25", "warehouse": "BOD-001", "location": "LOC-NORTE", "invoice_seller_id": "VEN-FAC", "voucher": "https://rsales-multimedia.ventasremotas.com/api/proxy/EMPRESA001/imagenes/DP_EMPRESA001VEN-001CLI-001ENT-001-02-01-2026-00-00-00-a1b2c3d4e5f6.JPG", "signature": "https://rsales-multimedia.ventasremotas.com/api/proxy/EMPRESA001/imagenes/DF_EMPRESA001VEN-001CLI-001ENT-001-02-01-2026-00-00-00-a1b2c3d4e5f6.JPG", "items": [ { "item_number": 1, "product_code": "PROD-001", "product_quantity": 10.0, "product_tax": 19.0, "product_price": 25000.0, "charge_values": null, "discount1": 5.0, "observations": null, "factor": 1.0, "factor_description": "Unidad" } ] }, { "code": "ENT-002", "client_id": "CLI-002", "seller_id": "VEN-001", "status_code": "RS_PARCIAL", "status_description": "Parcial", "news_code": null, "news": "Cliente no recibió todos los productos", "scheduled_date": "2026-01-03T00:00:00", "scheduled_end_date": null, "reported_at": "2026-01-03T10:15:00", "observations": null, "latitude": null, "longitude": null, "cell_info": null, "transmission_date": null, "management_code": null, "visit_time": null, "manifest": null, "weight": null, "volume": null, "created_at": "2026-01-02T12:00:00", "updated_at": null, "add_route_planner": null, "planned_duration": null, "visit_priority": null, "seller_observations": null, "rescheduling_cause": null, "rescheduling_observations": null, "address": null, "warehouse": null, "location": null, "invoice_seller_id": null, "voucher": "", "signature": "", "items": [] } ], "meta": { "totalItems": 25, "itemCount": 2, "itemsPerPage": 100, "totalPages": 1, "currentPage": 1 }, "links": { "self": "https://api.ventasremotas.com/v1/deliveries/pending?page=1&limit=100", "first": "https://api.ventasremotas.com/v1/deliveries/pending?page=1&limit=100", "prev": null, "next": null, "last": "https://api.ventasremotas.com/v1/deliveries/pending?page=1&limit=100" }}Descripción de campos de respuesta
Sección titulada «Descripción de campos de respuesta»Objeto data[] (Entrega)
Sección titulada «Objeto data[] (Entrega)»Cada elemento del array data contiene los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
code | String | Código único de la entrega |
client_id | String | Código único de identificación del cliente en el ERP |
seller_id | String | Código interno del transportador como se define en el ERP |
status_code | String | Código del estado de la entrega |
status_description | String | Descripción del estado de la entrega (puede ser null) |
news_code | String | Código de novedad asociado (puede ser null) |
news | String | Descripción de la novedad registrada para la entrega (puede ser null) |
scheduled_date | DateTime | Fecha estimada de despacho. Formato: yyyy-MM-ddTHH:mm:ss |
scheduled_end_date | DateTime | Fecha límite de entrega. Formato: yyyy-MM-ddTHH:mm:ss (puede ser null) |
reported_at | DateTime | Fecha reportada de la entrega. Formato: yyyy-MM-ddTHH:mm:ss (puede ser null) |
observations | String | Observaciones generales de la entrega (puede ser null) |
latitude | Number | Coordenada de latitud reportada para la entrega (puede ser null) |
longitude | Number | Coordenada de longitud reportada para la entrega (puede ser null) |
cell_info | String | Versión de la aplicación e IMEI del teléfono o tableta (puede ser null) |
transmission_date | DateTime | Fecha de transmisión de la entrega a los servidores de ADATEC. Formato: yyyy-MM-ddTHH:mm:ss (puede ser null) |
management_code | String | Código de gestión asociado (puede ser null) |
visit_time | Number | Tiempo en segundos de cuánto se tardó el asesor digitando la entrega (puede ser null) |
manifest | String | Manifiesto de carga (puede ser null) |
weight | Number | Peso asociado a la entrega (puede ser null) |
volume | Number | Volumen asociado a la entrega (puede ser null) |
created_at | DateTime | Fecha de creación de la entrega. Formato: yyyy-MM-ddTHH:mm:ss (puede ser null) |
updated_at | DateTime | Fecha de modificación de la entrega. Formato: yyyy-MM-ddTHH:mm:ss (puede ser null) |
add_route_planner | String | Indica si se añade al planeador de rutas (puede ser null) |
planned_duration | Number | Duración estimada en minutos para realizar la entrega (puede ser null) |
visit_priority | String | Prioridad de visita asociada a la entrega (puede ser null) |
seller_observations | String | Observaciones registradas por el transportador (puede ser null) |
rescheduling_cause | String | Causal de reprogramación, si aplica (puede ser null) |
rescheduling_observations | String | Observaciones o notas de la reprogramación, si aplica (puede ser null) |
address | String | Dirección de entrega (puede ser null) |
warehouse | String | Código de bodega asociado a la entrega (puede ser null) |
location | String | Código de ubicación (puede ser null) |
invoice_seller_id | String | Código del vendedor de la factura (puede ser null) |
voucher | String | URL de la foto del comprobante de la entrega (puede ser vacío si la entrega no tiene comprobante) |
signature | String | URL de la foto de la firma de la entrega (puede ser vacío si la entrega no tiene firma) |
items | Array | Lista de ítems (productos) de la entrega. Puede venir vacío |
Objeto items[] (Ítem de la entrega)
Sección titulada «Objeto items[] (Ítem de la entrega)»Cada elemento del array items dentro de una entrega contiene:
| Campo | Tipo | Descripción |
|---|---|---|
item_number | Number | Orden relativo del producto dentro de la entrega |
product_code | String | Código de producto asociado a la entrega |
product_quantity | Number | Cantidad del producto a entregar |
product_tax | Number | Valor en porcentaje del impuesto del producto |
product_price | Number | Valor unitario antes de impuestos |
charge_values | Number | Valores de cargos asociados al producto (puede ser null) |
discount1 | Number | Descuento 1 dado. Valor de 0 a 100 (puede ser null) |
observations | String | Observaciones por producto (puede ser null) |
factor | Number | Unidad de empaque de la unidad de entrega |
factor_description | String | Descripción del factor de venta (puede ser null) |
Objeto meta (Metadatos de paginación)
Sección titulada «Objeto meta (Metadatos de paginación)»| Campo | Tipo | Descripción |
|---|---|---|
totalItems | Number | Cantidad total de entregas que coinciden con los filtros |
itemCount | Number | Cantidad de entregas en la página actual |
itemsPerPage | Number | Cantidad de items por página solicitados |
totalPages | Number | Total de páginas disponibles |
currentPage | Number | Número de la página actual |
Objeto links (Enlaces de navegación)
Sección titulada «Objeto links (Enlaces de navegación)»| Campo | Tipo | Descripción |
|---|---|---|
self | String | URL de la página actual |
first | String | URL de la primera página |
prev | String | URL de la página anterior (null si es la primera página) |
next | String | URL de la página siguiente (null si es la última página) |
last | String | URL de la última página |
Los errores de validación de parámetros de consulta retornan un array de errores, donde cada error indica el parámetro problemático:
Filtro no válido
Sección titulada «Filtro no válido»{ "statusCode": 400, "errors": [ { "param": "invalid_param", "message": "The field is not a valid filter parameter" } ]}Valor de filtro vacío
Sección titulada «Valor de filtro vacío»{ "statusCode": 400, "errors": [ { "param": "client_id", "message": "Value must not be empty" } ]}Fecha con formato inválido
Sección titulada «Fecha con formato inválido»{ "statusCode": 400, "errors": [ { "param": "reported_from", "message": "Value '15-01-2026' is not a valid date (expected format: YYYY-MM-DD)" } ]}Valor excede longitud máxima
Sección titulada «Valor excede longitud máxima»{ "statusCode": 400, "errors": [ { "param": "seller_id", "message": "Value exceeds maximum length of 18" } ]}Campo de ordenamiento inválido
Sección titulada «Campo de ordenamiento inválido»{ "statusCode": 400, "errors": [ { "param": "sort", "message": "The field 'invalid_field' is not a valid sort field." } ]}Parámetro sort vacío
Sección titulada «Parámetro sort vacío»{ "statusCode": 400, "errors": [ { "param": "sort", "message": "The parameter must not be empty" } ]}Parámetro de paginación inválido
Sección titulada «Parámetro de paginación inválido»{ "statusCode": 400, "errors": [ { "param": "page", "message": "The parameter must be a valid integer" } ]}Página menor al mínimo
Sección titulada «Página menor al mínimo»{ "statusCode": 400, "errors": [ { "param": "page", "message": "The parameter must be greater than or equal to 1" } ]}Límite excede el máximo
Sección titulada «Límite excede el máximo»{ "statusCode": 400, "errors": [ { "param": "limit", "message": "The parameter must be less than or equal to 500" } ]}Límite vacío
Sección titulada «Límite vacío»{ "statusCode": 400, "errors": [ { "param": "limit", "message": "The parameter must not be empty" } ]}Tabla resumen de errores de validación
Sección titulada «Tabla resumen de errores de validación»Errores de filtros:
| Error | Aplica a |
|---|---|
The field is not a valid filter parameter | Cualquier parámetro no reconocido |
Value must not be empty | client_id, seller_id |
Value 'X' is not a valid date (expected format: YYYY-MM-DD) | reported_from |
Value exceeds maximum length of 18 | client_id, seller_id |
Errores de ordenamiento:
| Error | Aplica a |
|---|---|
The parameter must not be empty | sort |
The field 'X' is not a valid sort field. | sort |
Errores de paginación:
| Error | Aplica a |
|---|---|
The parameter must not be empty | page, limit |
The parameter must be a valid integer | page, limit |
The parameter must be greater than or equal to 1 | page, limit |
The parameter must be less than or equal to 500 | limit |
Error de conexión a base de datos
Sección titulada «Error de conexión a base de datos»{ "statusCode": 500, "errors": [ { "message": "Error connecting to database" } ]}Error de operación en base de datos
Sección titulada «Error de operación en base de datos»{ "statusCode": 500, "errors": [ { "message": "Database operation failed" } ]}Error en validaciones
Sección titulada «Error en validaciones»{ "statusCode": 500, "errors": [ { "message": "Unexpected error in the validations" } ]}Error inesperado
Sección titulada «Error inesperado»{ "statusCode": 500, "errors": [ { "message": "Unexpected error" } ]}Error del Servidor
Estos errores indican problemas internos en el servidor o la base de datos. Si persisten, contacta al equipo de soporte.