Realizá un envío

Antes de realizar tu primer envío, es necesario comprender cómo se estructura la información de envíos en Envíopack.

Envíopack 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 Envíopack.

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 más 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 Envíopack.

Crear un pedido

POST /pedidos

Crea un nuevo pedido en Envíopack.

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 Numero 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:AR sin el prefijo AR-.
localidad No String Máx. 50 caracteres
productos Condicional Array Si tenes tu maestro de productos cargados en Envíopack, podes indicarnos qué productos están asociados al pedido.

El uso del parámetro "productos" es de implementación obligatoria si utilizas 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 Envíopack o simplemente por el SKU propio del producto. La elección es tuya.
empresa No ID Este parámetro solo está disponible para cuentas de marketplaces. Permite crear un pedido en la cuenta de un seller y asociarlo a la cuenta del marketplace.
Te recomendamos revisar la sección "Marketplaces" en esta API Docs.

Ejemplo

REQUEST

curl -X POST \
	'https://api.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 posicionará en estado "Borrador".
  • - Podes crear un envío sin confirmar, con todos los datos completos excepto la selección de servicio y correo a utilizar, lo que hará que se cree directamente se cree con estado "Por Confirmar".
  • - Podes crear un envío con todos sus datos completos y confirmarlo, lo que hará que se cree directamente 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 Envíopack 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 / Depósitos
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 envías en el request, se completará automáticamente 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 Envíopack, podes simplemente indicarnos qué productos tiene el envío y nosotros nos encargamos de separarlos en paquetes según la configuración que hayas elegido dentro de cada producto.

El uso del parámetro "productos" es obligatorio si utilizas el servicio de Fulfillment. También es nuestra opción recomendada.

Si, por el contrario, querés especificar cómo se conforma cada paquete en particular, también podés 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 número, sin dígitos decimales
A través del campo tipo_identificador, te permitimos asociar productos a un envío utilizando el ID del producto asignado por Envíopack o simplemente 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. sin dígitos decimales
  • - ancho: en cm. sin dígitos decimales
  • - largo: en cm. sin dígitos decimales
  • - peso: en kg. 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 envío será despachado desde el depósito de Fullpack.

En caso de que no tengas el servicio de Fullpack activado, el valor por defecto es false. En caso de que sí lo tengas activado, el valor por defecto es true.
despacho Condicional String Indica si el operador logístico debe retirar el paquete desde el depósito del vendedor o si el vendedor lo llevará 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 Numero Entero de 4 dígitos
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.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.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",
}