> ## 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.

# Obtener una cotización

> Devuelve una cotización con su estado (`open`, `accepted`, `expired`) y, si ya se aceptó, el `deliveryId` de la entrega creada.

Devuelve una cotización guardada con su estado: `open` (se puede aceptar), `accepting` (se está creando la entrega), `accepted` (ya tiene entrega) o `expired` (venció sin aceptarse). Si ya se aceptó, incluye el `deliveryId` de la entrega creada.

Úsalo para resolver un reintento incierto: si la creación de la entrega no respondió, consulta la cotización y, si está `accepted`, sigue la entrega con su `deliveryId` en lugar de crearla de nuevo. Las cotizaciones se guardan 30 días; después responde `quoteNotFound`.


## OpenAPI

````yaml get /admin/last-mile/quotes/{quoteId}
openapi: 3.1.0
info:
  title: Justo API
  version: 3.0.0
servers:
  - url: https://api.service.getjusto.com/v3
    description: Servidor de producción
security: []
paths:
  /admin/last-mile/quotes/{quoteId}:
    get:
      summary: Obtener una cotización de última milla
      description: >-
        Devuelve una cotización con su estado (`open`, `accepted`, `expired`) y,
        si ya se aceptó, el `deliveryId` de la entrega creada.
      parameters:
        - in: path
          name: quoteId
          required: true
          schema:
            type: string
          description: ID de la cotización (POST /last-mile/quotes).
      responses:
        '200':
          description: Respuesta exitosa
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    $ref: '#/components/schemas/apiLastMileQuote'
        '400':
          description: Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: 'false'
                  error:
                    type: object
                    properties:
                      error:
                        type: string
                        example: error
                      message:
                        type: string
                        example: The request has an error
components:
  schemas:
    apiLastMileQuote:
      type: object
      description: >-
        Cotización guardada. Garantiza el precio y la hora de retiro hasta
        `expiresAt`. Para crear la entrega envía su `id` a POST
        /last-mile/deliveries antes de que venza.
      properties:
        id:
          type: string
          description: ID de la cotización.
          example: lmq-0193...
        status:
          type: string
          enum:
            - open
            - accepting
            - accepted
            - expired
          description: >-
            `open`: se puede aceptar. `accepting`: se está creando la entrega.
            `accepted`: ya tiene entrega (`deliveryId`). `expired`: venció sin
            aceptarse.
        expiresAt:
          type: string
          example: '2020-01-01T00:00:00.000Z'
          format: date-time
          description: Hasta cuándo se puede aceptar.
        pickupAt:
          type: string
          example: '2020-01-01T00:00:00.000Z'
          format: date-time
          description: >-
            Hora de retiro que Justo asegura, en el local y dentro de su
            horario. Si cotizaste sin `pickupAt` y aceptas varios minutos
            después, se corre en la misma medida: la hora definitiva viene al
            crear la entrega.
        estimatedDeliveryAt:
          type: string
          example: '2020-01-01T00:00:00.000Z'
          format: date-time
          description: Hora estimada de entrega en el destino.
        store:
          type: object
          description: >-
            Local elegido: el más cercano al destino entre los candidatos
            abiertos.
          properties:
            storeId:
              type: string
              description: ID Justo del local.
            name:
              type: string
              description: Nombre del local.
        fromAddress:
          $ref: '#/components/schemas/apiLastMileAddress'
        toAddress:
          $ref: '#/components/schemas/apiLastMileAddress'
        package:
          $ref: '#/components/schemas/apiLastMilePackage'
        vehicleType:
          type: string
          enum:
            - moto
            - car
          description: Tipo de vehículo que puede transportar el paquete.
        distanceMeters:
          type: integer
          description: Distancia por calle del local al destino.
        price:
          type: number
          description: >-
            Precio sin impuestos. Si el paquete necesita auto, incluye el
            recargo fijo por auto.
        priceWithTax:
          type: number
          description: 'Precio con impuestos: lo que se factura.'
        currency:
          type: string
          description: Moneda (CLP, COP, MXN, PEN…).
        externalId:
          type: string
          description: Tu identificador del envío.
        deliveryId:
          type: string
          description: Entrega creada desde esta cotización.
        createdAt:
          type: string
          example: '2020-01-01T00:00:00.000Z'
          format: date-time
          description: Fecha de la cotización.
    apiLastMileAddress:
      type: object
      properties:
        streetAddress:
          type: string
          description: Calle y número.
        extendedAddress:
          type: string
          description: Departamento, oficina, piso o block.
        locality:
          type: string
          description: Comuna o localidad.
        region:
          type: string
          description: Región o estado.
        countryCode:
          type: string
          description: País en ISO 3166-1 alfa-2.
        location:
          type: object
          required:
            - lat
            - lng
          additionalProperties: false
          properties:
            lat:
              type: number
              description: Latitud.
              example: -33.4290115
            lng:
              type: number
              description: Longitud.
              example: -70.6211027
          description: Coordenadas usadas para la distancia y el precio.
    apiLastMilePackage:
      type: object
      description: >-
        Paquete a despachar. Según su peso y sus medidas, Justo envía un
        repartidor en un vehículo que pueda transportarlo. Si el paquete
        necesita un auto, el local debe tener `acceptsCar: true` y el precio
        incluye un recargo fijo por auto.
      required:
        - weightKg
        - lengthCm
        - widthCm
        - heightCm
        - valueAmount
      additionalProperties: false
      properties:
        weightKg:
          type: number
          exclusiveMinimum: 0
          description: Peso en kilos.
        lengthCm:
          type: number
          exclusiveMinimum: 0
          description: Largo en centímetros.
        widthCm:
          type: number
          exclusiveMinimum: 0
          description: Ancho en centímetros.
        heightCm:
          type: number
          exclusiveMinimum: 0
          description: Alto en centímetros.
        valueAmount:
          type: number
          minimum: 0
          description: Valor declarado del contenido, en la moneda del país del local.
        description:
          type: string
          description: Qué contiene, por ejemplo "Caja de chocolates".
      example:
        weightKg: 1.2
        lengthCm: 30
        widthCm: 20
        heightCm: 10
        valueAmount: 25990

````

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