Saltar al contenido principal

Crear Orden con Etiqueta Previa

Crea un nuevo orden de fulfillment proporcionando una etiqueta de envío creada previamente. Este endpoint también permite adjuntar archivos relacionados con la orden en formato PDF que serán incluidos en el envío.

Formato de Solicitud

Este endpoint usa multipart/form-data en lugar de JSON. Asegúrate de configurar correctamente tu cliente HTTP.

POST/shipment/create_with_label

Este endpoint te permite crear un nuevo orden de fulfillment proporcionando una etiqueta de envío creada previamente. Debes incluir el token Bearer obtenido anteriormente en el encabezado de la solicitud.

Encabezados

ParámetroTipoRequeridoDescripción
Authorizationstring✅ SíToken Bearer obtenido del endpoint /token/generate
Content-Typestring✅ SíDebe ser multipart/form-data
Acceptstring✅ SíDebe ser application/json

Parámetros del Body

ParámetroTipoRequeridoDescripción
codboolean✅ SíDefine si la orden es COD (contra entrega) o regular
unique_order_numberstring✅ SíCódigo de identificación proporcionado por el vendedor (máx: 12)
invoicestring❌ NoDefine el número de factura para la orden (máx: 45)
shipping_servicestring✅ SíNombre del servicio de envío con el que se generó previamente la etiqueta (máx: 20)
warehouse_idinteger✅ SíEl ID del almacén desde el cual se surtirá la orden (máx: 10)
shipment_numberstring✅ SíNúmero de guía para la orden proporcionado por el servicio de envío (máx: 45)
labelfile✅ SíArchivo PNG de la guía proporcionado por el servicio de envío (máx. 3MB)
consignee_namestring✅ SíNombre del cliente (máx: 70)
consignee_countrystring✅ SíPaís de origen del cliente, será México por defecto (máx: 20)
consignee_statestring✅ SíCiudad/estado de residencia del cliente (máx: 45)
consignee_municipalitystring✅ SíDirección del municipio del cliente (máx: 35)
consignee_neighborhoodstring❌ NoDirección de la colonia del cliente (máx: 35)
consignee_streetstring✅ SíDirección de la calle del cliente (máx: 25)
consignee_external_numberstring✅ SíNúmero exterior del departamento o casa del cliente (máx: 5)
consignee_internal_numberstring❌ NoNúmero interior del departamento o casa del cliente (máx: 5)
consignee_zipcodestring✅ SíCódigo postal del cliente (máx: 10)
consignee_emailstring❌ NoEmail del cliente (máx: 80)
consignee_phonestring❌ NoTeléfono del cliente (máx: 15)
consignee_commentsstring❌ NoComentarios del cliente sobre la orden (máx: 80)
order_detailsstring✅ SíEn este campo se agregará un JSON en formato STRING con los detalles de la orden
total_pricefloat✅ SíPrecio total de la orden, se debe ingresar el monto total del envío (máx: 5)
attached_files[]array❌ NoUn arreglo de archivos relacionados con la orden en formato PDF (máx. 5 archivos)

Ejemplos

curl -X POST https://apisandbox.eonwms.com/shipment/create_with_label \
-H "Authorization: Bearer TU_TOKEN" \
-H "Accept: application/json" \
-F "cod=false" \
-F "unique_order_number=TESTORDER02" \
-F "invoice=invoice01" \
-F "shipping_service=FEDEX" \
-F "warehouse_id=1" \
-F "shipment_number=0000000001" \
-F "label=@/ruta/a/tu/etiqueta.png" \
-F "consignee_name=CLIENTE PRUEBA" \
-F "consignee_country=Mexico" \
-F "consignee_state=Ciudad de Mexico" \
-F "consignee_municipality=Benito Juarez" \
-F "consignee_neighborhood=Del Valle" \
-F "consignee_street=Insurgentes Sur" \
-F "consignee_external_number=100" \
-F "consignee_internal_number=" \
-F "consignee_zipcode=03100" \
-F "consignee_email=test@test.com" \
-F "consignee_phone=5555555555" \
-F "consignee_comments=Entregar en recepción" \
-F 'order_details=[{"quantity":1,"sku":"PRODUCTO01","unit_price":100.0}]' \
-F "total_price=100.0" \
-F "attached_files[]=@/ruta/a/factura.pdf"

Respuestas

200Éxito - Orden creado con etiqueta

{
"status": "PLACED",
"message": "la orden ha sido creado con la etiqueta proporcionada"
}

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": "invalid_label",
"error_description": "El archivo de etiqueta no es válido o excede el tamaño máximo"
}
}

Consideraciones Importantes

Formato de order_details

El campo order_details debe ser un JSON válido pero enviado como STRING. Ejemplo:

"[{\"quantity\":1,\"sku\":\"PRODUCTO01\",\"unit_price\":100.0}]"
Archivos Adjuntos
  • La etiqueta debe ser en formato PNG con un tamaño máximo de 3MB
  • Los archivos adjuntos deben ser PDF
  • Puedes adjuntar hasta 5 archivos PDF adicionales
  • Los archivos adjuntos serán incluidos físicamente en el paquete
Diferencias con el endpoint regular

Este endpoint es útil cuando:

  • Ya tienes una etiqueta generada por el transportista
  • Necesitas incluir documentos físicos en el envío
  • Manejas tu propia integración con transportistas

Ejemplo de Caso de Uso

Este endpoint es ideal para situaciones donde:

  1. Integración directa con transportistas: Ya tienes una cuenta directa con FedEx, UPS, etc., y generas tus propias etiquetas
  2. Documentación especial: Necesitas incluir facturas, permisos o documentación aduanal física
  3. Reenvíos: Cuando necesitas usar una etiqueta previamente generada para un reenvío

Validaciones

  • El número de guía (shipment_number) debe ser único
  • La etiqueta debe ser legible y en formato PNG
  • El servicio de envío debe coincidir con el transportista de la etiqueta
  • Los archivos PDF no deben exceder 5MB cada uno