Realizá un envío

Antes de realizar tu primer envío es necesario comprender como se estructura la información de envíos en EnvioPack.

EnvioPack maneja dos entidades principales:

Pedido

Es la entidad que representa al pedido u orden en tu aplicación. Tiene los datos básicos para poder identificar un pedido de tu plataforma en EnvioPack.

Envío

Es la entidad que representa al envío físico de tu pedido. De hecho todo envío debe estar asociado a un pedido.

Tal como sucede en la realidad, un pedido puede tener uno o mas envíos asociados: envío inicial, reintento de envío, devolución, etc. Cada uno de estos representa un envío real por parte del correo, y de la misma manera tiene su representación en EnvioPack.

Crear un pedido

POST /pedidos

Crea un nuevo pedido en EnvioPack.

Listado de parámetros

Parámetro ¿Es Obligatorio? Tipo de Dato Observaciones
id_externo String Máx. 30 caracteres
nombre String Máx. 30 caracteres
apellido String Máx. 30 caracteres
email String Máx. 100 caracteres
telefono No String Máx. 30 caracteres
celular No String Máx. 30 caracteres
monto Número Hasta 2 dígitos decimales
fecha_alta Fecha Ej. 2016-04-26 13:52:00
pagado Booleano Recordá que Booleano no es String
provincia No ID Deberá informarse el valor ID devuelto por el webservice de provincias. Los IDs de provincias están bajo el estándar ISO_3166-2:CL sin el prefijo CL-.
localidad No String Máx. 50 caracteres
productos Condicional Array Si tenes tu maestro de productos cargados en Enviopack podes indicarnos que productos tiene asociado el pedido.

El uso del parametro "productos" de implementación obligatoria si usas el servicio de Fulfillment

El valor esperado es un array JSON, donde cada posición del array debe contener un objeto JSON formado por:
  • - tipo_identificador: las opciones posibles son ID o SKU
  • - identificador: aquí debes ingresar el ID o SKU
  • - cantidad: Un numero, sin dígitos decimales
Mediante el campo tipo_identificador, te permitimos asociar productos a un pedido a partir del ID del producto asignado por Enviopack o simplemente por el SKU propio del producto, la elección es tuya.
empresa No ID Este parámetro solo esta disponible para cuentas marketplaces. Permite crear un pedido en la cuenta de un seller y asociado a la cuenta marketplace.
Te recomendamos revisar la sección Marketplaces en esta API Docs.

Ejemplo

REQUEST

curl -X POST \
	'https://api-cl.enviopack.com/pedidos?access_token=[TU_ACCESS_TOKEN]' \
	  --data-binary '
	  {
	  	"id_externo":"00001",
	  	"nombre":"Juan",
	  	"apellido":"Perez",
	  	"email":"juanperez@gmail.com",
	  	"telefono":"011 4965-1453",
	  	"celular":"011 15 5848 1533",
	  	"monto": 1234.50,
	  	"fecha_alta":"2016-04-26 13:52:00",
		"productos":[
			{"tipo_identificador":"SKU","identificador":"ABC1234","cantidad":1},
			{"tipo_identificador":"ID","identificador":65811,"cantidad":2},
		],
	  	"pagado": true,
	  	"provincia":"C",
	  	"localidad":"CABA"
  	  }'
RESPONSE

{
	"id_provincia":"C",
	"id":352,
	"plataforma":{
		"id":"web",
		"nombre":"Web"
	},
	"id_externo":"00001",
	"nombre":"Juan",
	"apellido":"Perez",
	"email":"juanperez@gmail.com",
	"telefono":"011 4965-1453",
	"celular":"011 15 5848 1533",
	"localidad":"CABA",
	"monto":1234.5,
	"fecha_alta":"2016-04-26 13:52:00",
	"pagado":true,
	"ultimo_envio":null
}

Crear un envío

POST /envios

Antes de crear tu primer envío es importante comprender los distintos estados del mismo.

Estado Identificador Observaciones
Borrador B Es aquel envío no confirmado, dado que aun no tiene sus datos completos.
Por Confirmar C Es aquel envío no confirmado, que tiene todos sus datos completos menos la selección de servicio y correo a utilizar.
En Proceso E Es aquel envío confirmado, que esta en camino a ser informado al correo.
Procesado P Es aquel que ya fue informado al correo y tiene la etiqueta lista para ser impresa.

Tené en cuenta que tus envíos no tienen que pasar obligatoriamente por cada uno de los estados.
Eso dependerá de tu operatoria.

Por ejemplo:

  • - Podes crear un envío sin confirmar y con datos faltantes, el cual se posicionara en estado "Borrador"
  • - Podes crear un envío sin confirmar, con todos los datos completos menos la selección de servicio y correo a utilizar, lo que hará que directamente se cree con estado "Por Confirmar"
  • - Podes crear un envío con todos su datos completos y confirmado, lo que hará que directamente se cree con estado "En Proceso"

En todos los casos el estado final "Procesado" se alcanza una vez que se recibe la confirmación final por parte del correo y es informado por EnvioPack a través de nuestro sistema de Notificaciones (Webhooks).

Por ultimo, recordá que podes crear un nuevo envío asociado a un pedido siempre y cuando dicho pedido no tenga envíos asociados o todos sus envíos estén en estado Procesado".

Listado de parámetros

Los parámetros marcados como "Condicional son aquellos que solo son obligatorios cuando el valor del parámetro "confirmado" es true.

Parámetro ¿Es Obligatorio? Tipo de Dato Observaciones
pedido ID ID del pedido al que corresponde este envío
direccion_envio Condicional ID ID que identifica la dirección, por donde el correo pasara a retirar la mercadería a enviar.
Podes obtenerlo ingresando en Configuración / Mis Direcciones
destinatario Condicional String Máx. 50 caracteres
observaciones No String
usa_seguro No Booleano Recordá que Booleano no es String.
Si completas este campo con null o no lo envias en el request se completara automaticamente según el modo de seguro elegido en tus preferencias
confirmado Booleano Recordá que Booleano no es String.
productos
       o
paquetes
Condicional Array Podes enviar uno de estos dos campos posibles: "productos" o "paquetes".

Si tenes tu maestro de productos cargados en Enviopack podes simplemente indicarnos que productos tiene el envío y nosotros nos ocupamos de separarlo en paquetes segun la configuracion que haya elegido dentro de cada producto.

El uso del parametro "productos" de implementación obligatoria si usas el servicio de Fulfillment. También es nuestra opción recomendada

Si por el contrario queres especificamente indicar como se conforma cada paquete en particular tambien podes hacerlo.

Si vas a usar el campo "productos"
El valor esperado es un array JSON, donde cada posición del array debe contener un objeto JSON formado por:
  • - tipo_identificador: las opciones posibles son ID o SKU
  • - identificador: aquí debes ingresar el ID o SKU
  • - cantidad: Un numero, sin dígitos decimales
Mediante el campo tipo_identificador, te permitimos asociar productos a un envío a partir del ID del producto asignado por Enviopack o simplemente por el SKU propio del producto, la elección es tuya.

Si vas a usar el campo "paquetes"
El valor esperado es un array JSON, donde cada posición del array debe contener un objeto JSON formado por:
  • - alto: en cm. y sin dígitos decimales
  • - ancho: en cm. y sin dígitos decimales
  • - largo: en cm. y sin dígitos decimales
  • - peso: en kg. y con hasta 2 dígitos decimales
  • - descripcion_primera_linea: String (Máx. 50 caracteres)
  • - descripcion_segunda_linea: String (Máx. 50 caracteres)
tiene_fulfillment Condicional Booleano Recordá que Booleano no es String.
Debes indicar si el envio será despachado desde el deposito de fullpack.

En el caso de que no tengas es el servicio de Fullpack activado el valor por defecto es false. En caso de que si lo tengas activado el valor por defecto es true.
despacho Condicional String Indica si el operador logistico debe retirar el paquete por el deposito del vendedor o si el vendedor lo va a acercar a una sucursal.
Los valores posibles son:
- D: retiro por domicilio
- S: despacho desde sucursal
modalidad String Los valores posibles son:
- D: para envíos a domicilio
- S: para envíos a sucursal
servicio Condicional String Los valores posibles son:
- N: para el servicio estándar
- P: para el servicio prioritario
- X: para el servicio express
- R: para el servicio de devoluciones
Si el envío es a domicilio
correo Condicional ID Deberá informarse el valor ID devuelto por el webservice de correos.
Por ejemplo para FastMail su ID es fastmail.
calle Condicional String Máx. 50 caracteres
numero Condicional String Máx. 5 caracteres
piso No String Máx. 6 caracteres
depto No String Máx. 4 caracteres
referencia_domicilio No String Máx. 30 caracteres
codigo_postal Condicional String String de 5 caracteres (puede comenzar con 0)
provincia Condicional ID Deberá informarse el valor ID devuelto por el webservice de provincias. Los IDs de provincias están bajo el estándar ISO_3166-2:AR sin el prefijo AR-.
localidad Condicional String Máx. 50 caracteres
Si el envío es a sucursal
sucursal Condicional ID Deberá informarse el valor ID devuelto por el webservice de sucursales.

Ejemplo

REQUEST                        Utilizando el campo "productos" (Obligatorio para uso de Fulfillment)

curl -X POST \
	'https://api-cl.enviopack.com/envios?access_token=[TU_ACCESS_TOKEN]' \
	  --data-binary '
		{
			"pedido":353,
			"direccion_envio":1,
			"destinatario":"Juan Perez",
			"observaciones":"Timbre 5 - 3 - Campana",
			"modalidad":"D",
			"servicio":null,
			"correo":null,
			"confirmado":false,
			"productos":[
				{"tipo_identificador":"SKU","identificador":"ABC1234","cantidad":1},
				{"tipo_identificador":"ID","identificador":65811,"cantidad":2},
			],
			"calle":"Ambrosetti",
			"numero":"435",
			"piso":"5",
			"depto":"C",
			"codigo_postal":"1405",
			"provincia":"C",
			"localidad":"Caballito"
		}'
REQUEST                        Utilizando el campo "paquetes"

curl -X POST \
	'https://api-cl.enviopack.com/envios?access_token=[TU_ACCESS_TOKEN]' \
	  --data-binary '
		{
			"pedido":353,
			"direccion_envio":1,
			"destinatario":"Juan Perez",
			"observaciones":"Timbre 5 - 3 - Campana",
			"modalidad":"D",
			"servicio":null,
			"correo":null,
			"confirmado":false,
			"paquetes": [
				{"alto":52,"ancho":42,"largo":3,"peso":2},
				{"alto":52,"ancho":42,"largo":4,"peso":2.5}
			],
			"calle":"Ambrosetti",
			"numero":"435",
			"piso":"5",
			"depto":"C",
			"codigo_postal":"1405",
			"provincia":"C",
			"localidad":"Caballito"
		}'
RESPONSE

{
	"id":358,
	"pedido":353,
	"direccion_envio":1,
	"destinatario":"Juan Perez",
	"modalidad":"D",
	"calle":"Ambrosetti",
	"numero":"435",
	"piso":"5",
	"depto":"C",
	"codigo_postal":"1405",
	"referencia_domicilio": null,
	"provincia":"C",
	"localidad":"Caballito"
	"paquetes":[
		{"alto":52,"ancho":42,"largo":3,"peso":2},
		{"alto":52,"ancho":42,"largo":4,"peso":2.5}
	],
	"observaciones":"Timbre 5 - 3 - Campana",
	"correo":null,
	"servicio":null,
	"confirmado":false,
	"fecha_solicitud":"2016-04-23T21:28:37-0300",
	"fecha_aceptacion":null,
	"tracking_number":null,
	"peso_aforado":4.5,
	"estado":"C",
	"costo_envio": null,
	"costo_seguro": null,
	"costo":null,
	"condicion": "R",
}