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

# Quote shipping options for a destination and package

> Returns the shipping options (carrier, delivery type, estimated delivery and price) that
the store's shipping configuration would offer for a package going to the given zip code.
Use it to show shipping choices at checkout. Mexico and Brazil destinations only.

To create an order with a specific shipping method, send the `shipping_method_id` of the option
you choose as `shipping_method_id` in `POST /orders`, `POST /orders/create-and-ship` or
`POST /brazil/orders`.

- The shipping configuration is chosen from the store's product shipping rules when
  `sku` matches one; otherwise the default configuration of the store's Open API
  integration is used. If none can be resolved the request fails.
- The quoted weight is the greater of the declared weight and the volumetric weight
  computed from the dimensions.
- When click and collect is enabled for the store's integration, pickup-point options
  are appended to the same array with `is_click_and_collect: true`. `order_total` or
  `item_count` are used to price those options, depending on how the store prices
  click and collect (see `cnc_pricing_basis`). If pickup-point pricing fails, the
  regular options are still returned.
- `delivery_eta_range` is omitted when no estimate is available.




## OpenAPI

````yaml /openapi.yaml get /shipping-methods/quote
openapi: 3.1.0
info:
  title: Cubbo Clients API
  version: '1.0'
  summary: >-
    Orders, inventory, replenishments, returns, shipping and webhooks for Cubbo
    fulfillment.
  description: >
    The Cubbo Clients API connects your store, ERP or marketplace with Cubbo's
    fulfillment network.

    All endpoints except `POST /auth/token` require a bearer token; see the
    Authentication guide.

    Request and response bodies are JSON. Errors are JSON objects with an
    `error` key.
  contact:
    name: Cubbo integrations
    email: integraciones@cubbo.com
servers:
  - url: https://api.cubbo.com/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Authentication
    description: Exchange client credentials for a bearer token.
  - name: Orders
    description: Create, update, hold, cancel and read sales orders.
  - name: Shipping labels
    description: Read the shipping labels generated for an order.
  - name: Inventory
    description: Products and stock per store.
  - name: Lots
    description: Lot-level inventory for products with expiration or batch tracking.
  - name: Reports
    description: Bulk reports for reconciliation.
  - name: Replenishments
    description: Inbound shipments to the warehouse.
  - name: Returns
    description: Returns and exchanges.
  - name: Stores
    description: Store provisioning and settings.
  - name: Shipping methods
    description: Available shipping methods, coverage and quotes.
  - name: Click and collect
    description: Pickup points and in-store pickup orders.
paths:
  /shipping-methods/quote:
    get:
      tags:
        - Shipping methods
      summary: Quote shipping options for a destination and package
      description: >
        Returns the shipping options (carrier, delivery type, estimated delivery
        and price) that

        the store's shipping configuration would offer for a package going to
        the given zip code.

        Use it to show shipping choices at checkout. Mexico and Brazil
        destinations only.


        To create an order with a specific shipping method, send the
        `shipping_method_id` of the option

        you choose as `shipping_method_id` in `POST /orders`, `POST
        /orders/create-and-ship` or

        `POST /brazil/orders`.


        - The shipping configuration is chosen from the store's product shipping
        rules when
          `sku` matches one; otherwise the default configuration of the store's Open API
          integration is used. If none can be resolved the request fails.
        - The quoted weight is the greater of the declared weight and the
        volumetric weight
          computed from the dimensions.
        - When click and collect is enabled for the store's integration,
        pickup-point options
          are appended to the same array with `is_click_and_collect: true`. `order_total` or
          `item_count` are used to price those options, depending on how the store prices
          click and collect (see `cnc_pricing_basis`). If pickup-point pricing fails, the
          regular options are still returned.
        - `delivery_eta_range` is omitted when no estimate is available.
      operationId: getShippingQuote
      parameters:
        - name: store_id
          in: query
          required: true
          description: Id of the store. Your credential must have access to it.
          schema:
            type: integer
            example: 1234
        - name: zip_code
          in: query
          required: true
          description: Destination zip code
          schema:
            type: string
            example: '06600'
        - name: country
          in: query
          required: false
          description: Destination country code. Only `MX` and `BR` are supported.
          schema:
            type: string
            enum:
              - MX
              - BR
            default: MX
        - name: sku
          in: query
          required: false
          description: >-
            SKU used to match the store's product shipping rules, when
            configured
          schema:
            type: string
            example: SKU-RED-M
        - name: shipping_type
          in: query
          required: false
          description: Shipment scope
          schema:
            type: string
            enum:
              - national
              - international
            default: national
        - name: width_cm
          in: query
          required: true
          description: Package width in centimeters
          schema:
            type: number
            minimum: 0.1
            example: 20
        - name: height_cm
          in: query
          required: true
          description: Package height in centimeters
          schema:
            type: number
            minimum: 0.1
            example: 10
        - name: length_cm
          in: query
          required: true
          description: Package length in centimeters
          schema:
            type: number
            minimum: 0.1
            example: 30
        - name: weight_kg
          in: query
          required: true
          description: Declared package weight in kilograms
          schema:
            type: number
            example: 1.5
        - name: order_total
          in: query
          required: false
          description: >-
            Cart value, used to price click-and-collect options when the store
            prices them by cart value
          schema:
            type: number
            example: 1500
        - name: item_count
          in: query
          required: false
          description: >-
            Number of units in the cart, used to price click-and-collect options
            when the store prices them by item count. Digits only.
          schema:
            type: string
            pattern: ^\d+$
            example: '3'
      responses:
        '200':
          description: >-
            Shipping options. Regular options come first, click-and-collect
            options (if any) after them.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShippingQuote'
              example:
                - shipping_method_id: 12
                  carrier_name: ESTAFETA
                  carrier_delivery: Ground
                  quoted_weight_kg: 2
                  delivery_sla_in_hours: 72
                  delivery_eta_range:
                    range_begin: '2026-10-14T06:00:00.000Z'
                    range_end: '2026-10-16T05:59:59.999Z'
                  price: 149
                - shipping_method_id: 15
                  carrier_name: CUBBO
                  carrier_delivery: NextDay
                  quoted_weight_kg: 2
                  delivery_sla_in_hours: null
                  delivery_eta_range: null
                  price: 125
                  is_click_and_collect: true
                  service_code: CUBBOCNCCUBBOCUBBO001
                  location_name: Punto Cubbo Centro
                  distance_km: 0.8
                  pickup_address: Calle Centro 300, CDMX, 06000
                  cnc_pricing_basis: cart_value
        '401':
          description: Missing or invalid token, or no access to the store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
              examples:
                invalidToken:
                  value:
                    error: Unauthorized
                    message: invalid token
                noStoreAccess:
                  value:
                    error: Unauthorized
                    message: not allowed to show? this Store
        '422':
          description: Validation or business error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missingParam:
                  value:
                    error: Parameter width_cm is required
                dimensionTooSmall:
                  value:
                    error: Parameter width_cm cannot be less than 0.1
                invalidItemCount:
                  value:
                    error: Parameter item_count must match format ^\d+$
                storeNotFound:
                  value:
                    error: store_id 1234 not found
                countryUnsupported:
                  value:
                    error: destination country CO not found
                zipNotFound:
                  value:
                    error: destination not found for zip code 00000
                noConfiguration:
                  value:
                    error: No shipping configuration found
                noCoverage:
                  value:
                    error: No shipping costs found due to lack of coverage.
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - bearerAuth: []
components:
  schemas:
    ShippingQuote:
      type: object
      description: >-
        One shipping option. Regular carrier options carry the first seven
        fields; click-and-collect options (`is_click_and_collect: true`) add the
        pickup-point fields.
      required:
        - shipping_method_id
        - carrier_name
        - carrier_delivery
        - quoted_weight_kg
        - delivery_sla_in_hours
        - price
      properties:
        shipping_method_id:
          type: integer
          description: Id of the shipping method to use when creating the order
          example: 12
        carrier_name:
          type: string
          description: Carrier name
          example: ESTAFETA
        carrier_delivery:
          type: string
          description: Delivery service level
          enum:
            - SameDay
            - NextDay
            - Ground
            - Pickup
            - International
          example: Ground
        quoted_weight_kg:
          type: number
          description: >-
            Weight the price was computed for (greater of declared and
            volumetric weight)
          example: 2
        delivery_sla_in_hours:
          type:
            - integer
            - 'null'
          description: Total delivery SLA in hours; null for click-and-collect options
          example: 72
        delivery_eta_range:
          description: >-
            Estimated delivery window. Omitted when unavailable; null for
            click-and-collect options.
          oneOf:
            - $ref: '#/components/schemas/EtaRange'
            - type: 'null'
        price:
          type:
            - number
            - 'null'
          description: Shipping price in the store's currency
          example: 149
        is_click_and_collect:
          type: boolean
          description: Present and true for pickup-point options
          example: true
        service_code:
          type: string
          description: >-
            Pickup point identifier to send as `click_and_collect_service_code`
            when creating the order
          example: CUBBOCNCCUBBOCUBBO001
        location_name:
          type: string
          description: Pickup point name
          example: Punto Cubbo Centro
        distance_km:
          type:
            - number
            - 'null'
          description: Distance from the destination zip code in kilometers
          example: 0.8
        pickup_address:
          type: string
          description: Pickup point address
          example: Calle Centro 300, CDMX, 06000
        cnc_pricing_basis:
          type: string
          description: Which input priced the pickup option
          enum:
            - cart_value
            - item_count
          example: cart_value
    UnauthorizedError:
      type: object
      description: Body of every 401 response
      properties:
        error:
          type: string
          description: Always `Unauthorized`
          example: Unauthorized
        message:
          type: string
          description: Why the request was refused
          example: invalid token
      required:
        - error
        - message
    Error:
      type: object
      description: Error body returned by every failed request.
      required:
        - error
      properties:
        error:
          type: string
          description: >-
            Human-readable description of the failure. For `401` responses it is
            always `Unauthorized`.
          example: Parameter store_id is required
        message:
          type: string
          description: >-
            Present on `401` responses only; the reason the request was
            rejected.
          example: invalid token
        code:
          type:
            - string
            - 'null'
          description: >-
            Stable machine-readable code, present on some order, return and
            replenishment errors.
          example: ORDER_ALREADY_EXISTS
        context:
          type:
            - object
            - 'null'
          description: >-
            Extra data about the failure when available, for example the id of
            the conflicting order.
          additionalProperties: true
          example:
            order_id: 987654
    EtaRange:
      type: object
      description: Estimated delivery window, in UTC
      required:
        - range_begin
        - range_end
      properties:
        range_begin:
          type: string
          format: date-time
          description: Start of the estimated delivery window
          example: '2026-10-14T06:00:00.000Z'
        range_end:
          type: string
          format: date-time
          description: End of the estimated delivery window
          example: '2026-10-16T05:59:59.999Z'
  responses:
    InternalServerError:
      description: >-
        Unexpected error. Retry with backoff; if it persists, send the timestamp
        to Cubbo support.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 'unexpected error, timestamp: 1760000000'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token returned by `POST /auth/token`, sent as `Authorization: Bearer
        <token>`.

````

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