ShopItUp Developers v1

Checkout

Price an order

Live

POST https://shopitup.ca/api/v1/checkout/quotes

Checks availability again and returns shipping options and tax for each store in the order — priced exactly as the store's checkout prices it. A quote is valid for 15 minutes. Nothing is reserved: items are one of a kind and stay buyable by others until paid. Anything that cannot be included is listed in unavailable with its reason, and the rest is priced without it.

Tax is worked out for the delivery address exactly as the store's checkout works it out.

Access
checkout:write How to get a token
Returns
The quote

Request body

JSON, sent with Content-Type: application/json.

  • items array of objects Required
    1–20 entries
    2 child attributes
    • catalog_item_id string Required
    • quantity integer Can be null
      1–10 default 1
  • shipping_address Address Required
    8 child attributes
    • name string Required
    • line1 string Required
    • line2 string Can be null
    • city string Required
    • province string Required

      Two-letter province code

    • postal_code string Required
    • country string Required
      One of CA
    • phone string Can be null
  • coupon string Can be null

Response

201 The quote

  • quote_id string
  • expires_at string date-time
  • stores array of StoreQuote
    9 child attributes
    • store StoreSummary
      4 child attributes
      • slug string Required

        The store's address label; use it in the store filter and GET /stores/{store_slug}

      • name string Required
      • url string uri Required
      • agent_checkout string Required

        How an assistant completes a purchase here. link — create a checkout and give the person its link; they review and pay on the store. direct — the store also accepts purchases an assistant makes for a person who allowed it, within the limits they set. Every store is link unless its owner opted in.

        One of direct link
    • items array of objects
      4 child attributes
      • catalog_item_id string
      • title string
      • quantity integer
      • price Money
        2 child attributes
        • amount string Required

          Decimal string, two places

        • currency string Required
          One of CAD
    • subtotal Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • discount Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • shipping_options array of ShippingOption
      5 child attributes
      • key string

        Pass back in the checkout request's shipping_selections to choose this option. flat_rate for a store pricing from its own rates

      • carrier string
      • service string
      • price Money
        2 child attributes
        • amount string Required

          Decimal string, two places

        • currency string Required
          One of CAD
      • delivery_estimate string Can be null

        The carrier's own delivery estimate, as it words it; null for a store's flat rate

    • selected_shipping string

      Key of the option used unless the checkout chooses another (the cheapest)

    • free_shipping string

      The store's free-shipping deal for this order: the threshold, how much more of this store's items unlocks it, and whether it already has (shipping is then 0.00). Null when the store offers none. Worth telling the person — never a reason to add items they did not ask for.

    • tax Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • total Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
  • unavailable array of objects

    Items that could not be included, and why

    2 child attributes
    • catalog_item_id string
    • reason string
      One of sold not_found store_cannot_ship_here quantity_unavailable
  • totals Totals

    subtotal − discount + shipping + tax = grand_total

    5 child attributes
    • subtotal Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • discount Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • shipping Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • tax Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD
    • grand_total Money
      2 child attributes
      • amount string Required

        Decimal string, two places

      • currency string Required
        One of CAD

Status codes

201

The quote

401

Missing, invalid or expired access token

403

The token does not carry the scope this endpoint needs

422

The request is invalid; fields says which field and why

429

Too many requests; retry after the number of seconds in Retry-After

503

A service the API depends on is briefly unavailable; retry after the number of seconds in Retry-After

Errors share one shape — see Errors and rate limits.