Uso de la API
Documentación de uso de la API de capacidad de entrega
Uso de la API
La Delivery Capacity API permite calcular la fecha de entrega disponible para un grupo de productos mediante el endpoint:
POST /delivery/capacityEste endpoint calcula la fecha de entrega basándose en los despachos que se generarían, utilizando lógica de capacidad.
Endpoint
POST /delivery/capacityURL Base
| Ambiente | URL |
|---|---|
| QA | https://qa.api.co.irdigital.pe/business-irdgco-delivery/v1 |
| Producción | https://api.co.irdigital.pe/business-irdgco-delivery/v1 |
Autenticación
La API utiliza autenticación mediante API Key.
Header requerido:
Authorization: Bearer <api-key>Headers requeridos
| Header | Descripción |
|---|---|
| Authorization | Token de autenticación |
| Content-Type | application/json |
Límite de la API
La API permite:
Múltiples productos por requestConsideraciones importantes
- El procesamiento es sincrónico
- Se retorna la respuesta en el mismo request
- La capacidad se evalúa en tiempo real según la disponibilidad
- Campos como nodos, identificadores de ruta y fechas internas se calculan dentro del servicio y no deben enviarse en el request
Estructura del Request
El request debe incluir los datos de la solicitud de fecha de entrega:
- purchaseDate (requerido)
- items (requerido)
- isLastRoute (opcional)
- isPurchaseOrderDeliveryDateRequest (opcional)Ejemplo de referencia
{
"purchaseDate": "2024-01-15",
"isLastRoute": false,
"isPurchaseOrderDeliveryDateRequest": false,
"items": [
{
"origin": "LIMA01",
"entityType": "CD",
"skuCode": "20054995",
"line": "FASHION",
"zone": "SPSA-ZN-125",
"zoneByChannel": "ECOMMERCE_ZONA_125",
"dispatchType": "NORMAL",
"quantity": 5,
"measurable": "UN",
"destination": "LIMA",
"units": 5,
"division": "TEXTIL",
"province": "LIMA",
"weight": 0.8,
"hasFreightAttributeConfiguration": false,
"attributes": [
{
"attribute": "TEMPERATURA",
"attributeValue": "AMBIENTE",
"attributeCode": "TEMP_AMB"
}
],
"latitude": -12.092,
"longitude": -77.042,
"saleChannel": "ecommerce",
"presentationCode": "UN",
"entityCode": "ENT-001",
"groupName": "GRUPO-LIMA",
"deliveryMode": "HOME_DELIVERY"
}
]
}Validaciones por campo
Campos obligatorios
Los siguientes campos son requeridos:
- purchaseDate (formato: YYYY-MM-DD)
- items (array no vacío)
Campos del item (DispatchDTO)
| Campo | Descripción | Requerido |
|---|---|---|
| origin | Código de origen del despacho | Sí |
| entityType | Tipo de entidad (CD, TD, PRV, SELLER) | Sí |
| skuCode | Código SKU del producto | Sí |
| zone | Zona de despacho | Sí |
| dispatchType | Tipo de despacho (NORMAL, EXPRESS) | Sí |
| destination | Destino del despacho | Sí |
| quantity | Cantidad del producto | Sí |
| latitude | Latitud de entrega | Sí |
| longitude | Longitud de entrega | Sí |
| deliveryMode | Modo de entrega (HOME_DELIVERY, STORE_WITHDRAWAL) | Sí |
Campos adicionales soportados en items[]
| Campo | Descripción |
|---|---|
| line | Línea o jerarquía del producto |
| zoneByChannel | Zona por canal de venta |
| measurable | Unidad de medida |
| units | Unidades |
| division | División del producto |
| province | Provincia de destino |
| weight | Peso del producto |
| hasFreightAttributeConfiguration | Indicador de configuración de flete |
| attributes | Lista de atributos del producto |
| latitude | Latitud de entrega |
| longitude | Longitud de entrega |
| saleChannel | Canal de venta |
| presentationCode | Código de presentación |
| entityCode | Código de entidad |
| groupName | Nombre del grupo |
Descripción de los atributos del response
Información de fecha de entrega
| Campo | Descripción | Tipo |
|---|---|---|
| skuCode | Código SKU del producto | string |
| line | Línea o jerarquía del producto | string |
| processingDays | Días de procesamiento | integer |
| leadTimes | Tiempos de entrega en días | array |
| pickingDate | Fecha de picking (YYYY-MM-DD) | date |
| deliveryDates | Fechas de entrega disponibles | array |
| deliveryTrace | Trazabilidad del despacho | array |
| message | Mensaje informativo o de error | string |
Estados y tipos válidos
entityType
CD -> Centro de Distribución
TD -> Tienda
PRV -> Proveedor
SELLER -> VendedordeliveryMode
HOME_DELIVERY -> Entrega a domicilio
STORE_WITHDRAWAL -> Retiro en tiendadispatchType
NORMAL -> Despacho normal
EXPRESS -> Despacho expressFlujo interno de cálculo de fecha de entrega
- Recepción del request con grupo de productos
- Validación de estructura JSON
- Validación de reglas de negocio
- Cálculo de despachos generados
- Evaluación de capacidad de cada despacho
- Determinación de fechas de entrega
- Generación de trazabilidad
- Retorno de respuesta
Diagrama de flujo
El siguiente diagrama describe el flujo de cálculo de fecha de entrega:
Códigos de respuesta
| Código | Descripción |
|---|---|
| 200 | Fecha de entrega al cliente obtenida exitosamente |
| 400 | Solicitud inválida o parámetros incorrectos |
| 404 | No se encontraron rutas para procesar el cálculo de fecha |
| 500 | Error calculando la fecha de entrega |
El archivo swagger de la API se puede consultar en el siguiente enlace: Swagger