Cotizar

El endpoint de cotización nos permite obtener los precios y opciones de envío.

En cada cotización, se deberá indicar la cuenta, el origen, destino, valor declarado del envío y detalle de paquetes. Con respecto al origen, éste debe haber sido creado previamente.

El Request

Para hacer el request hay dos variantes, una basada en paquetes, y otra basada en items.

Cotizar en base a paquetes

En esta variante se debe enviar un array packages con cada paquete que compondrá el envio. Un paquete es un bulto que tendrá su propia etiqueta. Un envío puede estar compuesto de uno o más bultos. A su vez, cada bulto puede tener adentro multiples items, pero para este modo de cotizacion es irrelevante.

Cotizar en base a items

En esta variante se debe enviar un array items con cada item que compondrá el envio. Un item es una unidad de un producto, que se podrá agrupar con otros items en una o mas cajas o paquetes. Luego, cada paquete resultante tendrá su propia etiqueta. En Zippin es posible configurar las cajas que usa el vendedor para preparar sus envios, las cuales se usaran para determinar automáticamente cómo agrupar los items en paquetes.


POST /shipments/quote
Parámetros para la URL:
sort_by string Opcional. Para indicar el ordenamiento de los resultados. Opciones:
price Ordena por menor a mayor precio
rating Ordena por mejor a peor nivel de servicio
time Ordena por menor a mayor tiempo de entrega
Parámetros para el body:
account_id int ID de la cuenta
origin_id int ID de algún origen de la cuenta. Ver Origenes
declared_value decimal Valor declarado del envío Ej: 200.50
packages array de Packages (objetos). No se debe usar si se envia items
weight int Peso en gramos
height
length
width
int Medidas del paquete, en centímetros
classification_id int 1 General
2 Colchones

description_1 string Descripcion del contenido del paquete
items array de Items (objetos) - no se debe enviar si se usa packages
sku string SKU del item Se intentará vincular a un SKU cargado en el catalogo de Zippin.
weight int Peso en gramos
height
length
width
int Medidas del item, en centímetros
classification_id int 1 General
2 Colchones

destination object
city string Ciudad/Localidad Ej. San Miguel de Tucuman
state string Provincia Ej. Tucuman
zipcode int Código postal Ej. 4500


El response

En el response nos encontraremos dos bloques:

El primer array, results, contiene un resultado ganador de cotización por cada tipo de servicio. El mismo será el resultado ganador de la cotización dependiendo de la configuración de la cuenta o el parámetro opcional sort_by. La clave del array será el código de cada tipo de servicio, y en el detalle estará la información del transporte ganador.

En el segundo array, all_results, se proveen todos los resultados de transportes posibles. También se puede modificar el orden de estos resultados con el parámetro sort_by en el query string.


Response (estructura de cada resultado)
selectable bool Si el resultado es seleccionable o no.
impediments null o array Posibles limitaciones para crear el envio cuando selectable sea false.
logistic_type string Forma de despacho del resultado de cotizacion. Se deberáindicar en la creación del envío.
carrier
id int ID del transporte. Se deberá indicar en la creación del envío.
name string Nombre del transporte
rating decimal Puntaje del nivel de servicio del transporte. 0%-100%
logo string URL del logo del transporte
amounts
price decimal Precio sin IVA
price_incl_tax decimal Precio con IVA
delivery_time
min int Tiempo de entrega mínimo, en días hábiles
max int Tiempo de entrega máximo, en días hábiles
service_type
id int ID del tipo de servicio
code string Código del tipo de servicio. Se deberá indicar en la creación del envío.
name string Nombre del servicio
is_urgent bool Si el servicio es urgente o no.

Ejemplo cotizacion por paquetes:

POST https://api.zippin.com.ar/v2/shipments/quote

{
	"account_id": "2",
	"origin_id": "25",
	"declared_value": 629,
	"packages": [
		{
			"classification_id": 1,
			"weight": 10000,
			"height": 10,
			"width": 50,
			"length": 30,
			"description_1": "Mueble para armar bulto 1"
		},
		{
			"classification_id": 1,
			"weight": 8000,
			"height": 10,
			"width": 60,
			"length": 20,
			"description_1": "Mueble para armar bulto 2"
		}
	],
	"destination": {
		"zipcode": "1642",
		"city": "san isidro",
		"state": "buenos aires"
	}
}


RESPONSE 200
{
  "sorted_by": "price",
  "destination": {
    "id": 1735,
    "city": "San Isidro",
    "state": "Buenos Aires",
    "zipcode": "1642"
  },
  "packages": [
    {
      "weight": 10000,
      "height": 10,
      "width": 50,
      "length": 30,
      "volume": 15000,
      "sku_id": null,
      "classification_id": 1,
      "items": [],
      "container": null
    },
    {
      "weight": 8000,
      "height": 10,
      "width": 60,
      "length": 20,
      "volume": 12000,
      "sku_id": null,
      "classification_id": 1,
      "items": [],
      "container": null
    }
  ],
  "results": {
    "standard_delivery": {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 205,
        "name": "Leset",
        "rating": 0.95,
        "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/leset\/9Bw6vmnLH2ZUvKTdAcQtqJRkvkZdJTqcPlR9nwYU.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 3,
        "max": 7
      },
      "amounts": {
        "price_shipment": 315.79,
        "price_insurance": 8.18,
        "price": 323.97,
        "price_incl_tax": 392
      },
      "rate": {
        "source": "tariff",
        "id": 12957,
        "tariff_id": 71
      },
      "tags": [
        "cheapest",
        "fastest"
      ]
    }
  },
  "all_results": [
    {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 205,
        "name": "Leset",
        "rating": 0.95,
        "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/leset\/9Bw6vmnLH2ZUvKTdAcQtqJRkvkZdJTqcPlR9nwYU.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 3,
        "max": 7
      },
      "amounts": {
        "price_shipment": 315.79,
        "price_insurance": 8.18,
        "price": 323.97,
        "price_incl_tax": 392
      },
      "rate": {
        "source": "tariff",
        "id": 12957,
        "tariff_id": 71
      },
      "tags": [
        "cheapest",
        "fastest"
      ]
    },
    {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 220,
        "name": "Malargue",
        "rating": 0.94,
        "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/malargue\/gzHM0KZOWMtDbd0svUiRJpiExH9uIQsAa3n8auke.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 5,
        "max": 10
      },
      "amounts": {
        "price_shipment": 725.7,
        "price_insurance": 8.18,
        "price": 733.88,
        "price_incl_tax": 888
      },
      "rate": {
        "source": "tariff",
        "id": 13050,
        "tariff_id": 113
      },
      "tags": []
    }
  ]
}

Ejemplo cotizacion por items:

POST https://api.zippin.com.ar/v2/shipments/quote

{
	"account_id": "2",
	"origin_id": "25",
	"declared_value": 1000,
	"items": [
		{
			"description": "Perfume Givenchy 200ml",
			"weight": 210,
			"height": 10,
			"width": 5,
			"length": 7
		},
		{
			"description": "Perfume Carolina Herrera 50ml",
			"weight": 55,
			"height": 8,
			"width": 4,
			"length": 7
		}
	],
	"destination": {
		"zipcode": "4400",
		"city": "Salta",
		"state": "Salta"
	}
}


RESPONSE 200
{
  "sorted_by": "price",
  "destination": {
    "id": 13628,
    "city": "Salta",
    "state": "Salta",
    "zipcode": "4400"
  },
  "packages": [
    {
      "weight": 365,
      "height": 9,
      "width": 15,
      "length": 12,
      "volume": 1620,
      "sku_id": null,
      "classification_id": 1,
      "items": [
        {
          "sku_id": null,
          "description": "Perfume Givenchy 200ml",
          "weight": 210,
          "must_keep_vertical": false,
          "width": 5,
          "length": 10,
          "height": 7,
          "pos_x": 0,
          "pos_y": 0,
          "pos_z": 0
        },
        {
          "sku_id": null,
          "description": "Perfume Carolina Herrera 50ml",
          "weight": 55,
          "must_keep_vertical": false,
          "width": 7,
          "length": 4,
          "height": 8,
          "pos_x": 5,
          "pos_y": 0,
          "pos_z": 0
        }
      ],
      "container": {
        "id": 2,
        "description": "Caja Mediana 2",
        "inner_width": 14,
        "inner_length": 11,
        "inner_height": 8,
        "outer_width": 15,
        "outer_length": 12,
        "outer_height": 9,
        "empty_weight": 100,
        "max_weight": 3000
      }
    }
  ],
  "results": {
    "standard_delivery": {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 217,
        "name": "Lo Bruno",
        "rating": 0.94,
        "logo": "https:\/\/zippin-test.s3.amazonaws.com\/carriers\/lo-bruno\/j5z2xiWrpRN3wr28e4UBvY9cDZeARqVVlDFYj1rN.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 8,
        "max": 19
      },
      "amounts": {
        "price_shipment": 324.19,
        "price_insurance": 13,
        "price": 337.19,
        "price_incl_tax": 408
      },
      "rate": {
        "source": "tariff",
        "id": 12085,
        "tariff_id": 106
      },
      "tags": [
        "cheapest"
      ]
    }
  },
  "all_results": [
    {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 217,
        "name": "Lo Bruno",
        "rating": 0.94,
        "logo": "https:\/\/zippin-test.s3.amazonaws.com\/carriers\/lo-bruno\/j5z2xiWrpRN3wr28e4UBvY9cDZeARqVVlDFYj1rN.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 8,
        "max": 19
      },
      "amounts": {
        "price_shipment": 324.19,
        "price_insurance": 13,
        "price": 337.19,
        "price_incl_tax": 408
      },
      "rate": {
        "source": "tariff",
        "id": 12085,
        "tariff_id": 106
      },
      "tags": [
        "cheapest"
      ]
    },
    {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 199,
        "name": "FastMail",
        "rating": 0.93,
        "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/fastmail\/BrTfB66lrJL81iod4AHexEb0lSyuiaZWvKAYuuHn.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 7,
        "max": 11
      },
      "amounts": {
        "price_shipment": 363.03,
        "price_insurance": 13,
        "price": 376.03,
        "price_incl_tax": 455
      },
      "rate": {
        "source": "tariff",
        "id": 12577,
        "tariff_id": 53
      },
      "tags": []
    },
    {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 208,
        "name": "OCA",
        "rating": 0.89,
        "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/oca\/aLab6HCfv1UmADtKn2Gnl8ZucTYroDIxIS5mVN7m.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 6,
        "max": 14
      },
      "amounts": {
        "price_shipment": 436.59,
        "price_insurance": 13,
        "price": 449.59,
        "price_incl_tax": 544
      },
      "rate": {
        "source": "tariff",
        "id": 13035,
        "tariff_id": 77
      },
      "tags": []
    },
    {
      "selectable": true,
      "impediments": null,
      "logistic_type": "crossdock",
      "carrier": {
        "id": 201,
        "name": "CCCargas",
        "rating": 0.81,
        "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/cccargas\/dM1jx0C57D1BKGMVDCLhJiDwP9PT0QErxkHyPUYK.png"
      },
      "service_type": {
        "id": 1,
        "code": "standard_delivery",
        "name": "Entrega a domicilio",
        "is_urgent": 0
      },
      "delivery_time": {
        "min": 6,
        "max": 10
      },
      "amounts": {
        "price_shipment": 1539.07,
        "price_insurance": 13,
        "price": 1552.07,
        "price_incl_tax": 1878
      },
      "rate": {
        "source": "tariff",
        "id": 12463,
        "tariff_id": 60
      },
      "tags": []
    }
  ]
}