---
title: "Obtener cotizaciones de envío"
method: POST
path: "/shipments/quotes"
tags: ["Shipments"]
---

# Obtener cotizaciones de envío

`POST /shipments/quotes`

Calcula las cotizaciones disponibles para un envío según origen, destino y paquetes.

## Request body

- object
  - `origin` union, required — Dirección de origen o destino. Se puede enviar de **tres formas mutuamente excluyentes**: | Modo | Qué enviar | Comportamiento | |------|-----------|----------------| | **1. Dirección existente** | solo `id` | Reutiliza una dirección ya creada, tal cual está. | | **2. Lugar guardado** | solo `place_id` | Copia automáticamente todos los datos desde el lugar. | | **3. Dirección nueva** | objeto completo | Crea una dirección nueva. | **Reglas de exclusión:** - `id` y `place_id` son excluyentes entre sí. - En el modo 3, la ubicación se indica por IDs internos (`city_id`) **o** por nombres (`city` + `state` + `country`).
    - AddressByIdInput — Reutiliza una dirección ya creada. Se usa exactamente como está; no se modifica ningún campo.
      - `id` string, required — ID de una dirección existente.
    - AddressByPlaceInput — Reutiliza un lugar guardado. Todos los datos se copian automáticamente desde el lugar.
      - `place_id` string, required — ID del lugar guardado (con prefijo `ple_`). Debe existir en la lista de lugares de la organización.
    - AddressNewInput — Crea una dirección nueva. La ubicación se puede indicar de dos formas: - **Por IDs internos:** envía `city_id` (y opcionalmente `state_id` / `country_id`). - **Por nombres:** envía `city`, `state` y `country` (código ISO).
      - `name` string, required — Nombre del destinatario/remitente.
      - `street` string, required — Nombre de la calle.
      - `street_number` string, required — Altura/número.
      - `floor` string, nullable — Piso (opcional).
      - `apartment` string, nullable — Departamento (opcional).
      - `reference` string, nullable — Referencia adicional (opcional).
      - `city_id` integer — ID interno de la ciudad. Obligatorio si no se envía `city`, `state` y `country`.
      - `city` string — Nombre de la ciudad. Obligatorio si no se envía `city_id`.
      - `state_id` integer — ID interno de la provincia/estado (opcional).
      - `state` string — Nombre de la provincia/estado.
      - `country_id` integer — ID interno del país (opcional).
      - `country` string — Código ISO del país (ej: AR, MX, CL).
      - `zipcode` string, nullable — Código postal (opcional).
      - `phone` string, nullable — Teléfono en formato E.164 (opcional).
      - `email` string, email, nullable — Email de contacto (opcional).
      - `document_type` string, nullable — Código del tipo de documento (opcional).
      - `document_number` string, nullable — Número de documento (obligatorio si se envía `document_type`).
      - `geo_latitude` number, float, nullable — Latitud (opcional). Si se omite, se geocodifica desde la dirección.
      - `geo_longitude` number, float, nullable — Longitud (opcional). Si se omite, se geocodifica desde la dirección.
  - `destination` union, required — Dirección de origen o destino. Se puede enviar de **tres formas mutuamente excluyentes**: | Modo | Qué enviar | Comportamiento | |------|-----------|----------------| | **1. Dirección existente** | solo `id` | Reutiliza una dirección ya creada, tal cual está. | | **2. Lugar guardado** | solo `place_id` | Copia automáticamente todos los datos desde el lugar. | | **3. Dirección nueva** | objeto completo | Crea una dirección nueva. | **Reglas de exclusión:** - `id` y `place_id` son excluyentes entre sí. - En el modo 3, la ubicación se indica por IDs internos (`city_id`) **o** por nombres (`city` + `state` + `country`).
    - AddressByIdInput — Reutiliza una dirección ya creada. Se usa exactamente como está; no se modifica ningún campo.
      - `id` string, required — ID de una dirección existente.
    - AddressByPlaceInput — Reutiliza un lugar guardado. Todos los datos se copian automáticamente desde el lugar.
      - `place_id` string, required — ID del lugar guardado (con prefijo `ple_`). Debe existir en la lista de lugares de la organización.
    - AddressNewInput — Crea una dirección nueva. La ubicación se puede indicar de dos formas: - **Por IDs internos:** envía `city_id` (y opcionalmente `state_id` / `country_id`). - **Por nombres:** envía `city`, `state` y `country` (código ISO).
      - `name` string, required — Nombre del destinatario/remitente.
      - `street` string, required — Nombre de la calle.
      - `street_number` string, required — Altura/número.
      - `floor` string, nullable — Piso (opcional).
      - `apartment` string, nullable — Departamento (opcional).
      - `reference` string, nullable — Referencia adicional (opcional).
      - `city_id` integer — ID interno de la ciudad. Obligatorio si no se envía `city`, `state` y `country`.
      - `city` string — Nombre de la ciudad. Obligatorio si no se envía `city_id`.
      - `state_id` integer — ID interno de la provincia/estado (opcional).
      - `state` string — Nombre de la provincia/estado.
      - `country_id` integer — ID interno del país (opcional).
      - `country` string — Código ISO del país (ej: AR, MX, CL).
      - `zipcode` string, nullable — Código postal (opcional).
      - `phone` string, nullable — Teléfono en formato E.164 (opcional).
      - `email` string, email, nullable — Email de contacto (opcional).
      - `document_type` string, nullable — Código del tipo de documento (opcional).
      - `document_number` string, nullable — Número de documento (obligatorio si se envía `document_type`).
      - `geo_latitude` number, float, nullable — Latitud (opcional). Si se omite, se geocodifica desde la dirección.
      - `geo_longitude` number, float, nullable — Longitud (opcional). Si se omite, se geocodifica desde la dirección.
  - `packages` PackageInput[], required — Paquetes a cotizar.
    - `id` integer — ID del paquete existente. Si se envía, los demás campos no son necesarios.
    - `external_reference` string, nullable — Referencia externa (opcional).
    - `description` string, nullable — Descripción del paquete (opcional).
    - `label_code` string — Código de etiqueta del paquete.
    - `length` integer — Largo en centímetros (normalizado).
    - `width` integer — Ancho en centímetros (normalizado).
    - `height` integer — Alto en centímetros (normalizado).
    - `original_length` number — Largo en la unidad original.
    - `length_unit` 'cm' | 'm' | 'in' | 'ft' — Unidad del largo original.
    - `original_width` number — Ancho en la unidad original.
    - `width_unit` 'cm' | 'm' | 'in' | 'ft' — Unidad del ancho original.
    - `original_height` number — Alto en la unidad original.
    - `height_unit` 'cm' | 'm' | 'in' | 'ft' — Unidad del alto original.
    - `grams` integer — Peso en gramos (normalizado). Opcional si se envía original_weight + weight_unit.
    - `original_weight` number — Peso en la unidad original. Opcional si se envía grams.
    - `weight_unit` 'g' | 'kg' | 'lbs' | 'oz' — Unidad del peso original. Requerido si se envía original_weight.
    - `un_code` string — Código UN de mercancía peligrosa.
    - `classification` string — Clasificación del paquete.
    - `is_flammable` boolean — Si el paquete es inflamable.
    - `is_corrosive` boolean — Si el paquete es corrosivo.
    - `is_fragile` boolean — Si el paquete es frágil.
    - `temperature_min` number — Temperatura mínima de transporte en °C (normalizado).
    - `temperature_max` number — Temperatura máxima de transporte en °C (normalizado).
    - `original_temperature_min` number — Temperatura mínima en la unidad original.
    - `temperature_min_unit` '°C' | '°F' — Unidad de temperatura mínima original.
    - `original_temperature_max` number — Temperatura máxima en la unidad original.
    - `temperature_max_unit` '°C' | '°F' — Unidad de temperatura máxima original.
  - `declared_value` number, nullable — Valor declarado (opcional).
  - `shipper_id` string, nullable — ID del shipper. Requerido si la org es carrier.
  - `carrier_id` string, nullable — ID del carrier. Requerido si la org es shipper.

## Response `200`

Cotizaciones obtenidas

- object
  - `quotes` Quote[]
    - `service_type_id` integer
    - `service_type_name` string
    - `price` number
    - `currency` string
    - `estimated_delivery_days` integer, nullable

## Other responses

- `401` — No autenticado
- `403` — Sin permisos
- `422` — Error de validación

---

[API](https://skmtc.net/zipnova/apis/zipnova-rutas-api-organizacional.md) · [All operations](https://skmtc.net/zipnova/apis/zipnova-rutas-api-organizacional/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zipnova/zipnova-rutas-api-organizacional/versions/d57b2ae4ce92/schema)
