IntroducciónLast updated: 2024-06-03
Esta documentación tiene como objetivo proporcionar toda la información que necesita para trabajar con nuestra API. Los ejemplos proporcionados usan una URL de prueba, la URL del entorno de producción será provista por la empresa logística que usa el sistema.
Si presenta algún inconveniente o consulta que no esté especificada, se puede comunicar al siguiente E-mail: soporte@midlasoft.com
Autenticación
Para autenticar los requests a los endpoints de nuestra API se debe enviar el Header con el valor "Bearer {YOUR_AUTH_KEY}" que se obtiene desde el portal de clientes de logística accediendo a “Configuración->Mi cuenta->API token” o comunicándose con la Empresa de Logística.
Crear envío
Servicio para la creación de envíos. Requiere autenticación.
Request
Headers
| Authorization | Bearer {YOUR_AUTH_KEY} |
|---|---|
| Accept | application/json |
| Content-Type | application/json |
Parametros del Body
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| platform_code | String | ✅ | 15 | Código de la plataforma que consume el servicio. Es brindado por la Empresa logística. |
| external_reference | String | ❌ | 64 | Cualquier referencia del usuario para el control interno del envío. |
| platform_shop_id | String | ❌ | 32 | Identificacion de la tienda en la plataforma de origen. |
| platform_order_id | String | ❌ | 32 | ID de la orden en la plataforma de origen. |
| platform_order_number | String | ❌ | 32 | Número de orden en la plataforma de origen. |
| note | String | ❌ | 255 | Cualquier información extra sobre el envío. |
| different_return | Boolean | ❌ | - | Debe ser "true" cuando la dirección de devolución del envío es diferente de la dirección de origen principal. Por defecto es "false" |
| destination_address | Object | ✅ | - | Destination Address. Dirección de destino del envío. |
| return_address | Object | ❌ | - | Return Address. En caso de que different_return sea "true" es Obligatorio. |
| items | Array Object | ✅ | - | Items. Detalle de items que conforman el envío. |
| shipment_quote | Object | ❌ | - | Shipment Quote. El cual se obtiene al consultar Consultar Servicios. |
Object Destination Address
Objeto para definir la dirección de destino del envío.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| country_code_iso | String | ✅ | 2 | Código ISO 3166-1 alfa-2 del país de la dirección de destino. Argentina: AR |
| province_code_iso | String | ✅ | 5 | Código ISO 3166-1 de la provincia de la dirección de destino. Ver Códigos ISO |
| street_name | String | ✅ | 255 | Nombre de la calle de la dirección de destino. |
| street_number | String | ❌ | 50 | Número de calle de la dirección de destino. |
| building_floor | String | ❌ | 50 | Identificación del piso específico de un edificio donde se debe entregar el paquete. |
| building_room | String | ❌ | 50 | Identificación de la habitación, oficina, apartamento u otra área específica dentro de un edificio donde se debe entregar el paquete. |
| address_note | String | ❌ | 255 | Cualquier otra información adicional sobre la dirección de destino. |
| zip_code | String | ✅ | 4 | Código postal de la dirección de destino. Formato de 4 dígitos. |
| city | String | ✅ | 64 | Ciudad de la dirección de destino. |
| longitude | Número decimal | ❌ | 11,8 | Latitud de la dirección de destino. Debe ser al menos -90. No debe ser mayor que 90. |
| longitude | Número decimal | ❌ | 11,8 | Longitud de la dirección de destino. Debe ser al menos -180. No debe ser mayor que 180. |
| full_name | String | ✅ | 128 | Nombre y apellido del destinatario. |
| document_type_code | String | ❌ | 20 | ID correspondiente al código del tipo de documento del destinatario. Valores posibles: para el DNI es "96". Para el CUIT es "80". Para el CUIL es "86". |
| document_number | String | ❌ | 20 | Número de documento del destinatario. |
| phone | String | ❌ | 128 | Número de teléfono del destinatario. |
| String | ❌ | 128 | Correo eletrónico del destinatario. |
Object Return Address
En el caso de un envío no entregado o devuelto, se puede establecer una dirección de devolución distinta a la dirección de origen para la entrega del mismo.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| country_code_iso | String | ✅ | 2 | Código ISO 3166-1 alfa-2 del país de la dirección de devolución. Argentina: AR |
| province_code_iso | String | ✅ | 5 | Código ISO 3166-1 de la provincia de la dirección de devolución. Ver Códigos ISO |
| street_name | String | ✅ | 255 | Nombre de la calle de la dirección de devolución. |
| street_number | String | ❌ | 50 | Número de calle de la dirección de devolución. |
| building_floor | String | ❌ | 50 | Identificación del piso específico de un edificio donde se debe entregar el paquete. |
| building_room | String | ❌ | 50 | Identificación de la habitación, oficina, apartamento u otra área específica dentro de un edificio donde se debe entregar el paquete. |
| address_note | String | ❌ | 255 | Cualquier otra información adicional sobre la dirección de devolución. |
| zip_code | String | ✅ | 16 | Código postal de la dirección de devolución. |
| city | String | ✅ | 64 | Ciudad de la dirección de devolución. |
| longitude | Número decimal | ❌ | 11,8 | Latitud de la dirección de devolución. Debe ser al menos -90. No debe ser mayor que 90. |
| longitude | Número decimal | ❌ | 11,8 | Longitud de la dirección de devolución. Debe ser al menos -180. No debe ser mayor que 180. |
| full_name | String | ✅ | 128 | Nombre y apellido del remitente. |
| document_type_code | String | ❌ | 20 | Código del tipo de documento del remitente. Valores posibles: DNI | CUIT | CUIL |
| document_number | String | ❌ | 20 | Número de documento del remitente. |
| phone | String | ❌ | 128 | Número de teléfono del remitente. |
| String | ❌ | 128 | Correo eletrónico del remitente. |
Object items
Objeto para definir la información contenida en el envío.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| sku | String | ✅ | 64 | Identificación única del item. |
| name | String | ✅ | 120 | Nombre del item. |
| quantity | Número | ✅ | 11 | Cantidad de items. Valor mínimo 1 |
| width | Número decimal | ✅ | 12,3 | El ancho del item en centimetros. Debe ser al menos 0. No debe ser mayor que 999999999999. |
| height | Número decimal | ✅ | 12,3 | El alto del item en centimetros. Debe ser al menos 0. No debe ser mayor que 999999999999. |
| depth | Número decimal | ✅ | 12,3 | La profundidad del item en centimetros. Debe ser al menos 0. No debe ser mayor que 999999999999. |
| grams | Número decimal | ✅ | 12,3 | El peso del item en gramos. |
| declared_value | Número decimal | ❌ | 12,2 | Valor declarado del item. El mismo es usado para calcular el seguro del envío. |
Object Shipment Quote
Objeto para definir el servicio y el punto de entrega del servicio cotizado. Si el envío no es un PICKUP no se debe enviar pickup_point_id, solo el ID del servicio.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| service_id | Número entero | ✅ | 20 | ID del servicio seleccionado para este envío. |
| pickup_point_id | Número entero | ❌ | 20 | El ID del punto de entrega si la cotización seleccionada es de tipo Pickup. Si la cotización es para un envío de tipo SEND, no se debe incluir el pickup_point_id |
Ejemplo de request para la creación de un envío
POST {BASE_URI}/api/v2/logistic/shipments
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
body = {
"platform_code": "api",
"external_reference": "123",
"platform_shop_id": "Store Name",
"platform_order_id": "326998250",
"platform_order_number": "5",
"note": "",
"different_return": false,
"destination_address": {
"country_code_iso": "AR",
"province_code_iso": "B",
"street_name": "Calle falsa",
"street_number": "123",
"building_floor": "",
"building_room": "",
"address_note": "Golpear dos veces",
"zip_code": "1602",
"city": "Florida",
"full_name": "Pepe Alfonso",
"contact_name": "",
"document_type_code": "96",
"document_number": "55555555",
"phone": "+5491112345689",
"email": "email@demo.com"
},
"items": [
{
"sku": "IP962236",
"name": "Computer mega ultra IA",
"width": 0,
"height": 0,
"depth": 0,
"grams": 900,
"declared_value": 34800,
"quantity": 1
}
],
"shipment_quote": {
"service_id": 6
}
};
Ejemplo del response
{
"data": {
"id": 522,
"tracking": "P00000000000522",
"tracking_url": "https://docs.domain-demo.com.ar/seguimiento"
}
}
Consultar servicios
Este request le permite obtener los servicios disponibles para un código postal. Requiere autenticación.
Request
Headers
| Authorization | Bearer {YOUR_AUTH_KEY} |
|---|---|
| Accept | application/json |
| Content-Type | application/json |
Parametros del Body
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| destination | Object | ✅ | - | Object Destination. Información de destino para cotizar |
| items | Array Object | ✅ | - | Object Items. Detalle de items que conforman el envío a cotizar. |
Object Destination
Objeto para definir la información de destino para cotizar.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| country_code_iso | String | ✅ | 2 | Código ISO 3166-1 alfa-2 del país de la dirección de destino. Argentina: AR |
| province_code_iso | String | ✅ | 5 | Código ISO 3166-1 de la provincia de la dirección de destino. Ver Códigos ISO |
| zip_code | String | ✅ | 4 | Código postal de la dirección de destino. Formato de 4 dígitos. |
Object items
Objeto para definir la información contenida en el envío para cotizar.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| quantity | Número | ✅ | 11 | Cantidad de items. Valor mínimo 1 |
| grams | Número decimal | ✅ | 12,3 | El peso del item en gramos. |
| dimensions | Object | ✅ | 12,3 | Object Dimensions. Define las medidas del item. |
| declared_value | Número decimal | ✅ | 12,3 | Valor declarado del item. |
Object Dimensions
Objeto para definir las medidas de un items para cotizar.
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| width | Número decimal | ✅ | 12,3 | El ancho del item en centimetros. Debe ser al menos 0. No debe ser mayor que 999999999999. |
| height | Número decimal | ✅ | 12,3 | El alto del item en centimetros. Debe ser al menos 0. No debe ser mayor que 999999999999. |
| depth | Número decimal | ✅ | 12,3 | La profundidad del item en centimetros. Debe ser al menos 0. No debe ser mayor que 999999999999. |
Ejemplo de request para cotizar un envío
POST {BASE_URI}api/v2/logistic/shipments/quote
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
body = {
"destination": {
"country_code_iso": "AR",
"province_code_iso": "B",
"zip_code": "1602"
},
"items": [
{
"grams": 900,
"dimensions": {
"width": 0,
"height": 0,
"depth": 0
},
"declared_value": 34800,
"quantity": 1
}
]
}
Ejemplo de response
{
"data": [
{
"service_id": 4,
"service_name": "Entrega a punto de entrega",
"service_delivery_type": "PICKUP",
"service_code": "code_pickup",
"service_description": "1",
"is_change": false,
"pickup_point_id": 1,
"pickup_point_name": "Pickup Point GBA",
"info": "LUN A VIE 9 A 17:30 HS.",
"min_days": 1,
"max_days": 1,
"price": 3109.02,
"price_tax": 799.05,
"price_insurance": 696,
"price_total": 4604.07,
"pickup_point_address": "Calle 1234, Localidad (1602) Buenos Aires"
},
{
"service_id": 6,
"service_name": "Entrega a domicilio GBA",
"service_delivery_type": "SEND",
"service_code": "code_send",
"service_description": "1",
"is_change": false,
"pickup_point_id": null,
"pickup_point_name": null,
"info": null,
"min_days": 2,
"max_days": 3,
"price": 3566.13,
"price_tax": 895.05,
"price_insurance": 696,
"price_total": 5157.18,
"pickup_point_address": null
},
{
"service_id": 14,
"service_name": "Devolución",
"service_delivery_type": "RETURN",
"service_code": "code_return",
"service_description": "1",
"is_change": false,
"pickup_point_id": null,
"pickup_point_name": null,
"info": null,
"min_days": 2,
"max_days": 3,
"price": 3221.26,
"price_tax": 822.62,
"price_insurance": 696,
"price_total": 4739.88,
"pickup_point_address": null
}
]
}
Generar etiqueta
Este request le permite obtener la etiqueta de un envío el cual debe estar procesado, de no estarlo se procesa automáticamente solo si el customer del envío cuenta con saldo suficiente. Requiere autenticación.
Request
Headers
| Authorization | Bearer {YOUR_AUTH_KEY} |
|---|---|
| Accept | application/json |
| Content-Type | application/json |
Consultar envío
Este request le permite obtener la información general del envío vía tracking. Se obtiene la dirección de origen, dirección de destino, así como también el detalle de los movimientos con la fecha correspondiente de realizado.
Request
Parametros del Body
| Parámetro | Tipo | Requerido | Tamaño | Descripción |
|---|---|---|---|---|
| tracking | String | ✅ | 20 | Seguimiento del envío. |
Ejemplo de request
POST {BASE_URI}api/logistic/shipments/tracking
body = {
"tracking" : "P00000001234567"
}
Ejemplo de request
{
"tracking": "P00000001234567",
"carrier_code": "correo",
"delivery_type": "SEND",
"sender_city": "Una ciudad",
"sender_zip_code": "1234",
"destination_city": "Una ciudad",
"destination_zip_code": "9876",
"movements": [
{
"status": "Creado",
"tracking_text": "El remitente está preparando tu envío.",
"realized_at": "2024-05-27T11:45:03+00:00",
"receiver_info": null
},
{
"status": "En el cliente para ser retirado",
"tracking_text": "El remitente ya preparo tu envío. Estamos coordinando su retiro.",
"realized_at": "2024-05-27T15:57:55+00:00",
"receiver_info": null
},
{
"status": "En camino a planta de procesamiento",
"tracking_text": "En camino a planta de procesamiento.",
"realized_at": "2024-05-27T18:08:07+00:00",
"receiver_info": null
},
{
"status": "En planta de procesamiento",
"tracking_text": "Tu envío llegó a nuestro Centro de Distribución para ser procesado.",
"realized_at": "2024-05-27T19:28:04+00:00",
"receiver_info": null
}
]
}