> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getjusto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Consultar cotización y ruta

> Devuelve la cotización junto con coordenadas de origen y destino, distancia en metros, duración estimada de conducción en segundos y puntos de la ruta. Requiere un local autorizado, cuyo ID se obtiene en GET /ecommerce/stores. No solicita un despacho ni reserva el precio. La duración no incluye la espera de un repartidor y no es una promesa de llegada o vehículo. En ida y vuelta, el precio incluye la vuelta, pero la ruta y su duración describen solo la ida. Si falla el cálculo de ruta después de cotizar, devuelve success=true con quote y routeError, sin route, conservando las coordenadas que se hayan resuelto.

Devuelve la cotización y una ruta referencial para una entrega sin pedido, sin solicitar un despacho. Envía un local autorizado en `storeId` y las direcciones en `fromAddress` y `toAddress`.

La respuesta incluye `quote`, las coordenadas disponibles de origen y destino y `route`: puntos del recorrido, distancia en metros y duración estimada de conducción en segundos. La duración no incluye la espera de un repartidor ni garantiza una hora de llegada. En ida y vuelta, el precio incluye la vuelta, pero la ruta describe solo la ida.

Si el cálculo de ruta falla después de cotizar, la respuesta conserva `success: true`, la cotización y las coordenadas resueltas; incluye `routeError` y omite `route`.

La cotización no reserva el precio ni genera un `quoteId`. Al crear el despacho se aplican los precios y validaciones vigentes.


## OpenAPI

````yaml post /admin/deliveries/preview
openapi: 3.1.0
info:
  title: Justo API
  version: 3.0.0
servers:
  - url: https://api.service.getjusto.com/v3
    description: Production server
security: []
paths:
  /admin/deliveries/preview:
    post:
      summary: Consultar cotización y ruta de una entrega sin pedido
      description: >-
        Devuelve la cotización junto con coordenadas de origen y destino,
        distancia en metros, duración estimada de conducción en segundos y
        puntos de la ruta. Requiere un local autorizado, cuyo ID se obtiene en
        GET /ecommerce/stores. No solicita un despacho ni reserva el precio. La
        duración no incluye la espera de un repartidor y no es una promesa de
        llegada o vehículo. En ida y vuelta, el precio incluye la vuelta, pero
        la ruta y su duración describen solo la ida. Si falla el cálculo de ruta
        después de cotizar, devuelve success=true con quote y routeError, sin
        route, conservando las coordenadas que se hayan resuelto.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - storeId
                - fromAddress
                - toAddress
              properties:
                storeId:
                  type: string
                  description: ID Justo del local solicitante.
                fromAddress:
                  $ref: '#/components/schemas/apiDeliveryPreviewAddressInput'
                toAddress:
                  $ref: '#/components/schemas/apiDeliveryPreviewAddressInput'
                isCash:
                  type: boolean
                  description: Si es true, considera cobro en efectivo.
                amountToPay:
                  type: number
                  description: Monto que debe cobrarse si isCash es true.
                tipAmount:
                  type: number
                  minimum: 0
                  description: >-
                    Propina para el repartidor en moneda del local. Se suma al
                    precio con impuestos para obtener totalAmount. Usa el mismo
                    tipAmount al crear el despacho.
                isRoundTrip:
                  type: boolean
                  description: Si es true, considera vuelta al origen.
                useCarForDelivery:
                  type: boolean
                  description: Si es true, cotiza con vehículo tipo auto.
              additionalProperties: false
              example:
                storeId: ID_DEL_LOCAL
                fromAddress:
                  streetAddress: Avenida Providencia 1208
                  countryCode: CL
                  locality: Providencia
                  acceptsNoLine2: true
                toAddress:
                  streetAddress: Avenida Providencia 1600
                  countryCode: CL
                  locality: Providencia
                  extendedAddress: Oficina 402
                tipAmount: 1000
                isRoundTrip: false
      responses:
        '200':
          description: The OpenAPI spec
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    $ref: '#/components/schemas/apiDeliveryPreview'
        '400':
          description: >-
            Solicitud rechazada por validación, autorización o reglas de la
            operación. Los problemas de pago y deuda reconocidos incluyen
            información para resolverlos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiDeliveryErrorResponse'
        '500':
          description: >-
            Error al procesar la solicitud. Un error o timeout de creación no
            garantiza que el despacho no se haya creado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiDeliveryErrorResponse'
components:
  schemas:
    apiDeliveryPreviewAddressInput:
      type: object
      description: >-
        Dirección para cotizar y calcular la ruta. Las coordenadas son
        opcionales; si se envían, deben incluir latitud y longitud válidas.
      required:
        - streetAddress
        - countryCode
      properties:
        streetAddress:
          type: string
          description: Calle y numeración ingresada por el customer o sistema externo.
        countryCode:
          type: string
          description: Código de país ISO 3166-1 alpha-2.
          example: CL
        extendedAddress:
          type: string
          description: Departamento, oficina u otra información secundaria.
        location:
          $ref: '#/components/schemas/apiDeliveryCoordinates'
        acceptsNoLine2:
          type: boolean
          description: Indica si el customer confirmó que no tiene línea 2.
        comment:
          type: string
          description: Comentario o instrucciones de entrega.
        locality:
          type: string
          description: Localidad o comuna.
        region:
          type: string
          description: Región o estado.
        postalCode:
          type: string
          description: Código postal.
      additionalProperties: false
    apiDeliveryPreview:
      type: object
      description: >-
        Cotización y ruta referencial de una entrega sin pedido, sin crear un
        despacho. Si el cálculo de ruta falla, conserva la cotización y las
        coordenadas resueltas, omite route e incluye routeError.
      required:
        - kind
        - quote
        - from
        - to
        - isRoundTrip
      additionalProperties: false
      properties:
        kind:
          type: string
          description: Tipo de resultado.
          enum:
            - preview
        quote:
          $ref: '#/components/schemas/apiDeliveryWithoutOrderQuote'
        from:
          $ref: '#/components/schemas/apiDeliveryPreviewAddress'
        to:
          $ref: '#/components/schemas/apiDeliveryPreviewAddress'
        isRoundTrip:
          type: boolean
          description: >-
            Indica si el precio incluye vuelta al origen. La geometría y
            duración describen solo la ida.
        route:
          type: object
          description: >-
            Recorrido referencial en vehículo. No incluye espera ni asignación
            de repartidor y no garantiza una hora de llegada o un tipo de
            vehículo.
          required:
            - path
            - distance
            - duration
          additionalProperties: false
          properties:
            path:
              type: array
              description: Puntos ordenados de la ruta, desde el origen hasta el destino.
              minItems: 1
              items:
                $ref: '#/components/schemas/apiDeliveryCoordinates'
            distance:
              type: number
              minimum: 0
              description: Distancia del recorrido de ida, en metros.
            duration:
              type: number
              minimum: 0
              description: Duración estimada de conducción de ida, en segundos.
        routeError:
          type: string
          description: >-
            Descripción del problema al calcular la ruta. Solo está presente
            cuando route no está disponible; la cotización sigue siendo válida
            como estimación.
      example:
        kind: preview
        quote:
          price: 3000
          priceWithTax: 3570
          tipAmount: 1000
          totalAmount: 4570
        from:
          streetAddress: Avenida Providencia 1208
          countryCode: CL
          location:
            lat: -33.4293
            lng: -70.6206
        to:
          streetAddress: Avenida Providencia 1600
          countryCode: CL
          location:
            lat: -33.4271
            lng: -70.6144
        isRoundTrip: false
        route:
          path:
            - lat: -33.4293
              lng: -70.6206
            - lat: -33.4271
              lng: -70.6144
          distance: 750
          duration: 180
    apiDeliveryErrorResponse:
      type: object
      description: >-
        Error de una operación de entregas. Conserva el error original; cuando
        se reconoce un problema de pago o deuda, agrega una clasificación
        estable y un enlace para resolverlo.
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
          description: La operación no fue exitosa.
        error:
          type: object
          description: Código y mensaje originales del error de la operación.
          properties:
            error:
              type: string
              description: Código original del error.
            message:
              type: string
              description: Descripción del error.
            details:
              description: Información adicional disponible en el error original.
        resolutionCode:
          type: string
          description: Problema reconocido que requiere una acción del comercio.
          enum:
            - insufficientFunds
            - paymentMethodRequired
            - paymentFailed
            - billingReceiverRequired
            - websiteBlockedByDebt
        resolveUrl:
          type: string
          description: Enlace para resolver el problema de pago, facturación o deuda.
          format: uri
        resolveMessage:
          type: string
          description: Descripción de la acción disponible en resolveUrl.
    apiDeliveryCoordinates:
      type: object
      description: Coordenadas geográficas válidas de un punto del recorrido.
      required:
        - lat
        - lng
      additionalProperties: false
      properties:
        lat:
          type: number
          minimum: -90
          maximum: 90
          description: Latitud en grados.
        lng:
          type: number
          minimum: -180
          maximum: 180
          description: Longitud en grados.
    apiDeliveryWithoutOrderQuote:
      type: object
      description: >-
        Cotización estimada de una entrega sin pedido. No reserva un precio ni
        genera un identificador de cotización; el precio se calcula nuevamente
        al crear el despacho.
      properties:
        price:
          type: number
          description: Precio estimado sin impuestos.
        priceWithTax:
          type: number
          description: Precio estimado con impuestos.
        tipAmount:
          type: number
          description: 'Propina para el repartidor, en moneda del local. Por defecto: 0.'
        totalAmount:
          type: number
          description: 'Total estimado a pagar: priceWithTax más tipAmount.'
    apiDeliveryPreviewAddress:
      type: object
      description: >-
        Dirección recibida, acompañada de las coordenadas resueltas cuando están
        disponibles. Si la geocodificación falla, conserva los datos de la
        dirección sin inventar coordenadas.
      required:
        - streetAddress
        - countryCode
      properties:
        streetAddress:
          type: string
          description: Calle y numeración ingresada por el customer o sistema externo.
        countryCode:
          type: string
          description: Código de país ISO 3166-1 alpha-2.
          example: CL
        extendedAddress:
          type: string
          description: Departamento, oficina u otra información secundaria.
        location:
          $ref: '#/components/schemas/apiDeliveryCoordinates'
        acceptsNoLine2:
          type: boolean
          description: Indica si el customer confirmó que no tiene línea 2.
        comment:
          type: string
          description: Comentario o instrucciones de entrega.
        locality:
          type: string
          description: Localidad o comuna.
        region:
          type: string
          description: Región o estado.
        postalCode:
          type: string
          description: Código postal.
      additionalProperties: false

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.