Crear orden
Crea una nueva orden de fulfillment en el sistema Chronos. Los datos del destinatario serán validados para cobertura de entrega según el paquete y almacén seleccionados.
/shipment/createEste endpoint te permite crear una nueva orden de fulfillment. Debes incluir el token Bearer obtenido previamente en el encabezado de la solicitud.
Encabezados
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
Authorization | string | ✅ Sí | Token Bearer obtenido del endpoint /token/generate |
Content-Type | string | ✅ Sí | Debe ser application/json |
Accept | string | ✅ Sí | Debe ser application/json |
Parámetros del Body
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
unique_order_number | string | ✅ Sí | Código de identificación proporcionado por el vendedor (máx: 50) |
shipping_service | string | ✅ Sí | Valores válidos: FEDEX, YEGO, AFIMEX, UPS, JTEXPRESS, USPS, TIUI (máx: 10) |
invoice | string | ❌ No | Número de factura para la orden (máx: 45) |
warehouse_id | integer | ✅ Sí | ID del almacén desde el cual se surtirá la orden (máx: 10) |
cod | boolean | ✅ Sí | true para Contra Entrega (COD), false para entrega regular |
consignee | object | ✅ Sí | Información de entrega del cliente |
consignee.name | string | ✅ Sí | Nombre del cliente (evitar acentos y caracteres especiales) (máx: 35) |
consignee.country | string | ✅ Sí | País del cliente (nombre completo, ej: 'Mexico') (máx: 20) |
consignee.state | string | ✅ Sí | Estado del cliente (no debe estar abreviado) (máx: 35) |
consignee.municipality | string | ✅ Sí | Municipio del cliente (máx: 35) |
consignee.neighborhood | string | ✅ Sí | Colonia del cliente (máx: 35) |
consignee.street | string | ✅ Sí | Calle del cliente (máx: 24) |
consignee.external_number | string | ✅ Sí | Número exterior o 's/n' si no está disponible (máx: 5) |
consignee.internal_number | string | ❌ No | Número interior (máx: 5) |
consignee.zipcode | string | ✅ Sí | Código postal de 5 dígitos (puede empezar con 0) (máx: 5) |
consignee.email | string | ❌ No | Email del cliente (formato: nombre@dominio.com) (máx: 50) |
consignee.phone | string | ✅ Sí | Teléfono de 10 dígitos (máx: 10) |
consignee.comments | string | ❌ No | Instrucciones de entrega (evitar comillas) (máx: 250) |
order_details | array | ✅ Sí | Arreglo de productos en la orden |
order_details[].quantity | integer | ✅ Sí | Cantidad del producto (máx: 10) |
order_details[].sku | string | ✅ Sí | SKU del producto (máx: 35) |
order_details[].unit_price | float | ✅ Sí | Precio unitario (puede ser 0) (máx: 5) |
total_price | float | ✅ Sí | Monto total de la orden (recomendado para seguro) (máx: 5) |
Ejemplos
- cURL
- JavaScript
- Python
curl -X POST https://apisandbox.eonwms.com/shipment/create \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"unique_order_number": "ORDEN-12345",
"shipping_service": "FEDEX",
"invoice": "FAC-001",
"warehouse_id": "1",
"cod": false,
"consignee": {
"name": "Juan Perez",
"country": "Mexico",
"state": "Ciudad de Mexico",
"municipality": "Benito Juarez",
"neighborhood": "Del Valle",
"street": "Insurgentes Sur",
"external_number": "123",
"internal_number": "4B",
"zipcode": "03100",
"email": "juan.perez@email.com",
"phone": "5512345678",
"comments": "Entregar en recepcion"
},
"order_details": [
{
"quantity": 2,
"sku": "PROD-001",
"unit_price": "299.99"
},
{
"quantity": 1,
"sku": "PROD-002",
"unit_price": "149.99"
}
],
"total_price": "749.97"
}'
const datosDeLaOrden = {
unique_order_number: "ORDEN-12345",
shipping_service: "FEDEX",
invoice: "FAC-001",
warehouse_id: "1",
cod: false,
consignee: {
name: "Juan Perez",
country: "Mexico",
state: "Ciudad de Mexico",
municipality: "Benito Juarez",
neighborhood: "Del Valle",
street: "Insurgentes Sur",
external_number: "123",
internal_number: "4B",
zipcode: "03100",
email: "juan.perez@email.com",
phone: "5512345678",
comments: "Entregar en recepcion"
},
order_details: [
{
quantity: 2,
sku: "PROD-001",
unit_price: "299.99"
},
{
quantity: 1,
sku: "PROD-002",
unit_price: "149.99"
}
],
total_price: "749.97"
};
const response = await fetch('https://apisandbox.eonwms.com/shipment/create', {
method: 'POST',
headers: {
'Authorization': 'Bearer TU_TOKEN',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(datosDeLaOrden)
});
const resultado = await response.json();
import requests
datos_del_orden = {
"unique_order_number": "ORDEN-12345",
"shipping_service": "FEDEX",
"invoice": "FAC-001",
"warehouse_id": "1",
"cod": False,
"consignee": {
"name": "Juan Perez",
"country": "Mexico",
"state": "Ciudad de Mexico",
"municipality": "Benito Juarez",
"neighborhood": "Del Valle",
"street": "Insurgentes Sur",
"external_number": "123",
"internal_number": "4B",
"zipcode": "03100",
"email": "juan.perez@email.com",
"phone": "5512345678",
"comments": "Entregar en recepcion"
},
"order_details": [
{
"quantity": 2,
"sku": "PROD-001",
"unit_price": "299.99"
},
{
"quantity": 1,
"sku": "PROD-002",
"unit_price": "149.99"
}
],
"total_price": "749.97"
}
response = requests.post(
'https://apisandbox.eonwms.com/shipment/create',
headers={
'Authorization': 'Bearer TU_TOKEN',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
json=datos_de_la_orden
)
resultado = response.json()
Respuestas
200Éxito - Orden creada
{
"status": "PLACED",
"message": "The order has been successfully created"
}
401No autorizado - Token inválido
{
"v": "EON_V2.0",
"fault": {
"arguments": {
"Authorization": "invalid"
},
"type": "InvalidAuthorizationException",
"message": "La solicitud no está autorizada, el token de acceso es inválido."
}
}
422Entidad no procesable - Error de validación
{
"fault": {
"error": "validation_error",
"error_description": "El servicio de envío no está disponible para este destino"
}
}
Notas Importantes
La siguiente lista muestra los valores aceptados para el parámetro "State" al crear órdenes para México
- Aguascalientes
- Baja California
- Baja California Sur
- Campeche
- Coahuila
- Colima
- Chiapas
- Chihuahua
- Ciudad de Mexico
- Durango
- Guanajuato
- Guerrero
- Hidalgo
- Jalisco
- Mexico
- Michoacan
- Morelos
- Nayarit
- Nuevo Leon
- Oaxaca
- Puebla
- Queretaro
- Quintana Roo
- San Luis Potosi
- Sinaloa
- Sonora
- Tabasco
- Tamaulipas
- Tlaxcala
- Veracruz
- Yucatan
- Zacatecas
- Evita acentos y caracteres especiales en los campos de dirección
- Los nombres de estados no deben estar abreviados
- Los códigos postales deben ser exactamente de 5 dígitos
- El número exterior es requerido (usa 's/n' si no está disponible)
Los servicios de envío disponibles dependen de tu contrato y la ubicación del almacén:
- México: FEDEX, YEGO, AFIMEX, TIUI
- EE.UU.: FEDEX, UPS, USPS
- Internacional: JTEXPRESS
Contacta a soporte para habilitar transportistas adicionales.
Flujo de Estados de la orden
Después de crear una orden, pasará por el siguiente flujo de estados:
- PLACED - La orden ha sido registrada exitosamente y se encuentra en espera para su preparación.
- READY - Los productos asignados a la orden han sido reservados del inventario y la orden está en proceso de preparación para su envío.
- FULFILLED - Los productos asignados a la orden han sido descontados del inventario en almacén.
- SEND - La orden ha sido recolectada por la paquetería asignada y está en tránsito hacia su destino.
- DELIVERED - La orden ha sido entregada con éxito al destinatario.
- RETURNED TO CHRONOS (Opcional) - El intento de entrega no fue exitoso y la orden ha sido devuelta al almacén de origen.
*Entre los estatus SEND y DELIVERED/RETURNED TO CHRONOS las diferentes paqueterías asignan una variedad de estatus que se muestran en el historial con el mismo valor con el que son obtenidos de origen, por lo que el flujo de una orden en tránsito puede variar con cada caso.
Puedes rastrear el estado de la orden usando el endpoint Obtener Estado de la orden.