openapi: 3.0.3
info:
title: Admin Account / Address Checkout / Shipments API
contact:
name: Spree Commerce
url: https://spreecommerce.org
email: hello@spreecommerce.org
description: "Spree Admin API v3 - Administrative API for managing products, orders, and store settings.\n\n## Authentication\n\nThe Admin API requires a secret API key passed in the `x-spree-api-key` header.\nSecret API keys can be generated in the Spree admin dashboard.\n\n## Response Format\n\nAll responses are JSON. List endpoints return paginated responses with `data` and `meta` keys.\nSingle resource endpoints return a flat JSON object.\n\n## Resource IDs\n\nEvery resource is identified by an opaque string ID (e.g. `prod_86Rf07xd4z`,\n`variant_k5nR8xLq`, `or_UkLWZg9DAJ`). Use these IDs everywhere — URL paths,\nrequest bodies, and Ransack filters all accept them directly.\n\n## Error Handling\n\nErrors return a consistent format:\n```json\n{\n \"error\": {\n \"code\": \"validation_error\",\n \"message\": \"Validation failed\",\n \"details\": { \"name\": [\"can't be blank\"] }\n }\n}\n```\n"
version: v3
servers:
- url: http://{defaultHost}
variables:
defaultHost:
default: localhost:3000
tags:
- name: Checkout / Shipments
paths:
/api/v2/storefront/checkout/select_shipping_method:
patch:
description: 'Selects shipping method for Shipment(s).
To generate shipments you first need to fetch shipping rates via
[Get Shipping Rates](/api-reference/storefront/checkout-shipments/list-shipping-rates) endpoint'
operationId: select-shipping-method
responses:
'200':
$ref: '#/components/responses/Cart'
'404':
$ref: '#/components/responses/404NotFound'
'422':
$ref: '#/components/responses/422UnprocessableEntity'
security:
- orderToken: []
- bearerAuth: []
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
shipping_method_id:
type: string
description: ID of the selected Shipping Method
shipment_id:
type: string
description: ID of the selected Shipment. If not supplied it will try to set selected shipping method for all shipments
required:
- shipping_method_id
examples:
Set shippng method for all shipments:
value:
shipping_method_id: '1'
Set shipping method for specific shipment:
value:
shipping_method_id: '1'
shipment_id: '1'
description: ''
parameters:
- $ref: '#/components/parameters/CartIncludeParam'
- $ref: '#/components/parameters/SparseFieldsCart'
summary: Selects shipping method for shipment(s)
tags:
- Checkout / Shipments
/api/v2/storefront/checkout/shipping_rates:
get:
description: 'Returns a list of available shipping rates for the checkout.
Shipping rates are grouped against shipments. Each checkout can have multiple shipments. Some products are in stock and will be shipped immediately, while others might be back-ordered and sent later.'
tags:
- Checkout / Shipments
operationId: shipping-rates
responses:
'200':
$ref: '#/components/responses/Shipment'
'404':
$ref: '#/components/responses/404NotFound'
security:
- orderToken: []
- bearerAuth: []
summary: List Shipping Rates
components:
schemas:
LineItem:
title: Line Item
type: object
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: line_item
attributes:
type: object
properties:
name:
type: string
example: Sample product
quantity:
type: integer
example: 1
slug:
type: string
example: sample-product
options_text:
type: string
example: 'Size: small, Color: red'
price:
type: string
example: '125.0'
description: Price of Product per quantity
currency:
type: string
example: USD
display_price:
type: string
example: $125.00
description: Price of Product per quantity
total:
type: string
example: '250.0'
description: Total price of Line Item including adjastments, promotions and taxes
display_total:
type: string
example: $250.00
description: Total price of Line Item including adjastments, promotions and taxes
adjustment_total:
type: string
example: '10.0'
description: TBD
display_adjustment_total:
type: string
example: $10.00
description: TBD
additional_tax_total:
type: string
example: '5.0'
display_additional_tax_total:
type: string
example: $5.00
discounted_amount:
type: string
example: '125.0'
display_discounted_amount:
type: string
example: $125.00
pre_tax_amount:
type: string
example: '125.0'
display_pre_tax_amount:
type: string
example: $125.00
promo_total:
type: string
example: '-5.0'
display_promo_total:
type: string
included_tax_total:
type: string
example: '0.0'
description: Taxes included in the price, eg. VAT
display_inluded_tax_total:
type: string
example: $0.00
compare_at_amount:
type: string
example: '290.99'
description: Compare at price of the Line Item
display_compare_at_amount:
type: string
example: $290.99
description: Display compare at price of the Line Item
public_metadata:
type: object
example:
recommended_by_us: true
description: The public metadata for the Line Item.
relationships:
type: object
properties:
variant:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
digital_links:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
description: ''
Timestamp:
type: string
format: date-time
example: '2020-02-16T07:14:54.617Z'
x-internal: false
title: Time Stamp
x-examples:
example-1: '2020-02-16T07:14:54.617Z'
ShipmentIncludes:
x-internal: false
title: Shipment Includes
allOf:
- $ref: '#/components/schemas/ShippingRate'
- $ref: '#/components/schemas/StockLocation'
Error:
x-internal: false
title: Error
type: object
properties:
error:
type: string
Promotion:
type: object
title: Promotion
properties:
id:
type: string
example: '1'
type:
type: string
default: promotion
attributes:
type: object
properties:
name:
type: string
example: 10% Discount
description:
type: string
example: Super discount for you
amount:
type: string
example: '-10.0'
display_amount:
type: string
example: -$10.00
code:
type: string
example: BLK-FRI
required:
- id
- type
- attributes
x-internal: false
Cart:
description: The Cart provides a central place to collect information about an order, including line items, adjustments, payments, addresses, and shipments. [Read more in Spree docs](/developer/core-concepts/orders)
type: object
title: Cart
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: cart
attributes:
type: object
properties:
number:
type: string
example: R123456789
description: Used as the **{order_number}** value in the URI to identify a completed order.
token:
type: string
example: eL0nVxe1Aum-Qr9-UkryPA1633360128076
description: Used for authorizing actions through the `X-Spree-Order-Token` API Key.
item_total:
type: string
example: '19.99'
subtotal_cents:
type: integer
example: 1999
store_credit_total_cents:
type: integer
example: 0
total:
type: string
example: '29.99'
total_cents:
type: integer
example: 2999
total_minus_store_credits:
type: string
example: '29.99'
total_minus_store_credits_cents:
type: integer
example: 2999
ship_total:
type: string
example: '5.0'
ship_total_cents:
type: integer
example: 500
adjustment_total:
type: string
example: '10.0'
created_at:
$ref: '#/components/schemas/Timestamp'
updated_at:
$ref: '#/components/schemas/Timestamp'
completed_at:
type: string
format: date-time
nullable: true
included_tax_total:
type: string
example: '5.00'
additional_tax_total:
type: string
example: '5.0'
display_additional_tax_total:
type: string
example: $5.00
tax_total:
type: string
example: '10.0'
tax_total_cents:
type: integer
example: 1000
currency:
type: string
example: USD
state:
type: string
example: cart
enum:
- cart
- address
- delivery
- payment
- confirm
- complete
description: "State of the Cart in the Checkout flow. Please see \n The Order State machine\n for a full list with description."
email:
type: string
format: email
example: spree@example.com
nullable: true
display_item_total:
type: string
example: $19.99
display_ship_total:
type: string
example: $19.99
display_adjustment_total:
type: string
example: $10.00
display_included_tax_total:
type: string
example: $5.00
promo_total:
type: string
example: '-10.0'
promo_total_cents:
type: integer
example: -1000
display_promo_total:
type: string
example: -$10.00
item_count:
type: number
description: Total quantity number of all items added to the Cart
example: 2
minimum: 0
special_instructions:
type: string
example: Please wrap it as a gift
description: Message added by the Customer
nullable: true
display_total:
type: string
example: $29.99
display_total_minus_store_credits:
type: string
example: $29.99
pre_tax_item_amount:
type: string
example: '17.00'
display_pre_tax_item_amount:
type: string
example: $17.00
pre_tax_total:
type: string
example: '20.00'
display_tax_total:
type: string
example: $10.00
display_pre_tax_total:
type: string
example: $20.00
shipment_state:
type: string
enum:
- pending
- backorder
- canceled
- partial
- ready
- shipped
- null
description: "Overall state of the Shipments. Please see \n Order Shipments states\n for a full list with description."
nullable: true
payment_state:
type: string
enum:
- balance_due
- credit_owed
- failed
- paid
- void
- null
description: "Overall state of the Payments. Please see \n Order Payments states\n for a full list with description."
nullable: true
relationships:
type: object
properties:
line_items:
type: object
description: ''
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
variants:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
promotions:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
payments:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
shipments:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
user:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
billing_address:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
shipping_address:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
DigitalLink:
title: Digital Link
type: object
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: digital_link
attributes:
type: object
properties:
token:
type: string
example: Gn6srBmmR4KrWy73LRtrBKYw
relationships:
type: object
properties:
line_item:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
description: Digital links are accessible in the order includes line_items.digital_links
CartIncludes:
x-internal: false
title: Cart Includes
anyOf:
- $ref: '#/components/schemas/LineItem'
- $ref: '#/components/schemas/Promotion'
- $ref: '#/components/schemas/Variant'
- $ref: '#/components/schemas/Payment'
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/Shipment'
- $ref: '#/components/schemas/DigitalLink'
- $ref: '#/components/schemas/Product'
description: ''
Relation:
type: object
nullable: true
properties:
id:
type: string
type:
type: string
required:
- id
- type
x-internal: false
description: ''
StockLocation:
title: Stock Location
type: object
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: stock_location
attributes:
type: object
properties:
name:
type: string
example: Main Warehouse
required:
- id
- type
- attributes
Shipment:
type: object
title: Shipment
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: shipment
attributes:
type: object
properties:
number:
type: string
example: H121354
description: Unique Shipment identifier
free:
type: boolean
description: Indicates if the Shipping Rate is free, eg. when Free shipping promo applied to Cart
final_price:
type: string
example: '10.0'
description: Price to be presented for the Customer
display_final_price:
type: string
example: $10.00
tracking_url:
type: string
example: https://tools.usps.com/go/TrackConfirmAction?tRef=fullpage&tLc=2&text28777=&tLabels=4123412434%2C
description: Tracking URL to the service provider website
nullable: true
state:
type: string
example: shipped
enum:
- pending
- ready
- shipped
- canceled
description: "Status of the Shipment. For a list of all available statuses please refer: \n Shipment section in Spree Guides\n"
shipped_at:
type: string
format: date-time
example: '2021-01-02 13:42:12'
description: Date when Shipment was being sent from the warehouse
nullable: true
relationships:
type: object
properties:
stock_location:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
shipping_rates:
type: object
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
User:
type: object
title: User
description: ' '
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: user
attributes:
type: object
properties:
email:
type: string
example: spree@example.com
first_name:
type: string
example: John
last_name:
type: string
example: Doe
selected_locale:
type: string
example: fr
store_credits:
type: number
example: 150.75
completed_orders:
type: number
example: 3
description: Number of placed Orders by this User
tags:
type: array
items:
type: string
description: List of tags associated with the user
public_metadata:
type: object
example:
user_segment: supplier
description: The public metadata for this User
relationships:
type: object
properties:
default_billing_address:
type: object
description: Default billing address associated with this Account
properties:
data:
$ref: '#/components/schemas/Relation'
default_shipping_address:
type: object
description: Default shipping address associated with this Account
properties:
data:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
ShippingRate:
type: object
title: Shipping Rate
description: ''
x-internal: false
properties:
id:
type: string
example: '1'
nullable: true
type:
type: string
default: shipping_rate
attributes:
type: object
properties:
name:
type: string
example: USPS Ground
selected:
type: boolean
example: true
cost:
type: string
example: '10.0'
description: Price of the service without discounts applied
tax_amount:
type: string
example: '0.0'
description: Eligible tax for service (if any)
shipping_method_id:
type: integer
example: 1
description: ID of a Shipping Method. You will need this for the Checkout Update action
final_price:
type: string
example: '10.0'
description: Price to be presented for the Customer
display_cost:
type: string
example: $10.00
display_final_price:
type: string
example: $10.00
display_tax_amount:
type: string
example: $0.00
free:
type: boolean
example: true
description: Indicates if the Shipping Rate is free, eg. when Free shipping promo applied to Cart
relationships:
type: object
properties:
shipping_method:
type: object
description: Shipping method for which this shipping rate belongs to
properties:
data:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
Product:
type: object
title: Product
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: product
attributes:
type: object
properties:
name:
type: string
example: Example product
description:
type: string
example: Example description
nullable: true
available_on:
type: string
example: '2012-10-17T03:43:57Z'
nullable: true
slug:
type: string
example: example-product
price:
type: string
example: '15.99'
nullable: true
currency:
type: string
example: USD
display_price:
type: string
example: $15.99
nullable: true
purchasable:
type: boolean
description: Indicates if any of Variants are in stock or backorderable
in_stock:
type: boolean
description: Indicates if any of Variants are in stock
backorderable:
type: boolean
description: Indicates if any of Variants are backeorderable
meta_description:
type: string
example: Example product
nullable: true
meta_keywords:
type: string
example: example, product
nullable: true
updated_at:
$ref: '#/components/schemas/Timestamp'
sku:
type: string
example: 9238-WS
available:
type: boolean
compare_at_price:
type: string
example: '49.99'
nullable: true
display_compare_at_price:
type: string
example: $49.99
nullable: true
localized_slugs:
type: object
description: Provides product's slugs in other locales
tags:
type: array
items:
type: string
description: List of tags associated with the product
labels:
type: array
items:
type: string
description: List of labels associated with the product
relationships:
type: object
properties:
variants:
type: object
description: List of Product Variants, excluding Master Variant
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
option_types:
type: object
description: List of Product Option Types
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
product_properties:
type: object
description: List of Product Properties
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
taxons:
type: object
description: List of Taxons associated with this Product
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
images:
type: object
description: List of Images associated with this Product
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
default_variant:
type: object
description: The default Variant for this product
properties:
data:
$ref: '#/components/schemas/Relation'
primary_variant:
type: object
description: The Primary Variant for this product
properties:
data:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
Variant:
title: Variant
description: 'Variant records track the individual variants of a Product. Variants are of two types: master variants and normal variants.'
x-examples: {}
type: object
x-internal: false
properties:
id:
type: string
example: '1'
type:
type: string
default: variant
attributes:
type: object
properties:
sku:
type: string
example: SKU-1001
price:
type: string
example: '15.99'
currency:
type: string
example: USD
display_price:
type: string
example: $15.99
weight:
type: string
example: '10'
nullable: true
height:
type: string
example: '10'
nullable: true
width:
type: string
example: '10'
nullable: true
depth:
type: string
example: '10'
nullable: true
is_master:
type: boolean
description: Indicates if Variant is the master Variant
options_text:
type: string
example: 'Size: small, Color: red'
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
presentation:
type: string
purchasable:
type: boolean
description: Indicates if Variant is in stock or backorderable
in_stock:
type: boolean
description: Indicates if Variant is in stock
backorderable:
type: boolean
relationships:
type: object
properties:
product:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
images:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
option_values:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
Payment:
title: Payment
type: object
description: ''
x-internal: false
properties:
id:
type: string
type:
type: string
default: payment
attributes:
type: object
properties:
amount:
type: string
default: '200.57'
response_code:
type: integer
default: 192
number:
type: string
default: PV7B4YH0
cvv_response_code:
type: integer
default: 200
cvv_response_message:
type: string
default: authorized
payment_method_id:
type: integer
default: 1
payment_method_name:
type: string
default: Credit Card
state:
type: string
default: paid
relationships:
type: object
properties:
source:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
payment_method:
type: object
properties:
data:
$ref: '#/components/schemas/Relation'
required:
- id
- type
- attributes
- relationships
responses:
404NotFound:
description: 404 Not Found - Resource not found.
content:
application/vnd.api+json:
schema:
properties:
error:
type: string
example: The resource you were looking for could not be found.
default: The resource you were looking for could not be found.
examples:
404 Example:
value:
error: The resource you were looking for could not be found.
Shipment:
description: '200 Success - Returns an array containing several `shipment` objects, along with the included array containing all available `shipping_rate` and `stock_location` objects. '
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Shipment'
included:
type: array
items:
$ref: '#/components/schemas/ShipmentIncludes'
required:
- data
- included
examples:
Shipment:
value:
data:
- id: '3'
type: shipment
attributes:
number: H97593072360
final_price: '5.0'
display_final_price: $5.00
state: pending
shipped_at: null
tracking_url: null
free: false
relationships:
shipping_rates:
data:
- id: '10'
type: shipping_rate
- id: '11'
type: shipping_rate
- id: '12'
type: shipping_rate
stock_location:
data:
id: '1'
type: stock_location
included:
- id: '10'
type: shipping_rate
attributes:
name: UPS Ground (USD)
selected: true
final_price: '5.0'
display_final_price: $5.00
cost: '5.0'
display_cost: $5.00
tax_amount: '0.0'
display_tax_amount: $0.00
shipping_method_id: '1'
free: false
relationships:
shipping_method:
data:
id: '1'
type: shipping_method
- id: '11'
type: shipping_rate
attributes:
name: UPS Two Day (USD)
selected: false
final_price: '10.0'
display_final_price: $10.00
cost: '10.0'
display_cost: $10.00
tax_amount: '0.0'
display_tax_amount: $0.00
shipping_method_id: '2'
free: false
relationships:
shipping_method:
data:
id: '2'
type: shipping_method
- id: '12'
type: shipping_rate
attributes:
name: UPS One Day (USD)
selected: false
final_price: '15.0'
display_final_price: $15.00
cost: '15.0'
display_cost: $15.00
tax_amount: '0.0'
display_tax_amount: $0.00
shipping_method_id: '3'
free: false
relationships:
shipping_method:
data:
id: '3'
type: shipping_method
- id: '1'
type: stock_location
attributes:
name: default
Cart:
description: 200 Success - Returns the `cart` object.
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Cart'
included:
type: array
items:
$ref: '#/components/schemas/CartIncludes'
required:
- data
examples:
Empty Cart:
value:
data:
id: '17'
type: cart
attributes:
number: R233871560
item_total: '0.0'
total: '0.0'
subtotal_cents: 0
store_credit_total_cents: 0
total_cents: 0
total_minus_store_credits: '0.0'
total_minus_store_credits_cents: 0
ship_total: '0.0'
ship_total_cents: 0
adjustment_total: '0.0'
created_at: '2021-09-28T22:15:07.471Z'
updated_at: '2021-09-28T22:15:07.471Z'
completed_at: null
included_tax_total: '0.0'
additional_tax_total: '0.0'
display_additional_tax_total: $0.00
display_included_tax_total: $0.00
tax_total: '0.0'
tax_total_cents: 0
currency: USD
state: cart
token: zTEpsukRq_yEUcXVCSv0uw1632867307450
email: null
display_item_total: $0.00
display_ship_total: $0.00
display_adjustment_total: $0.00
display_tax_total: $0.00
promo_total: '0.0'
display_promo_total: $0.00
promo_total_cents: 0
item_count: 0
special_instructions: null
display_total: $0.00
display_total_minus_store_credits: $0.00
pre_tax_item_amount: '0.0'
display_pre_tax_item_amount: $0.00
pre_tax_total: '0.0'
display_pre_tax_total: $0.00
shipment_state: null
payment_state: null
relationships:
line_items:
data: []
variants:
data: []
promotions:
data: []
payments:
data: []
shipments:
data: []
user:
data: null
billing_address:
data: null
shipping_address:
data: null
Populated Cart:
value:
data:
id: '11'
type: cart
attributes:
number: R823511564
item_total: '287.97'
subtotal_cents: 28797
total: '316.0'
store_credit_total_cents: 0
total_cents: 31600
total_minus_store_credits: '316.0'
total_minus_store_credits_cents: 31600
ship_total: '5.0'
ship_total_cents: 500
adjustment_total: '23.03'
created_at: '2021-09-28T12:57:15.148Z'
updated_at: '2021-09-28T13:06:02.689Z'
completed_at: null
included_tax_total: '26.18'
additional_tax_total: '51.83'
display_additional_tax_total: $51.83
display_included_tax_total: $26.18
tax_total: '78.01'
tax_total_cents: 7801
currency: USD
state: payment
token: VDK_6q_NNdWFc81VZRpUfQ1632833835148
email: spree@example.com
display_item_total: $287.97
display_ship_total: $5.00
display_adjustment_total: $23.03
display_tax_total: $78.01
promo_total: '-28.8'
display_promo_total: -$28.80
promo_total_cents: -2880
item_count: 3
special_instructions: null
display_total: $316.00
display_total_minus_store_credits: 31600
pre_tax_item_amount: '261.7909'
display_pre_tax_item_amount: $261.79
pre_tax_total: '266.7909'
display_pre_tax_total: $266.79
shipment_state: null
payment_state: null
relationships:
line_items:
data:
- id: '6'
type: line_item
variants:
data:
- id: '130'
type: variant
promotions:
data:
- id: '2'
type: promotion
payments:
data: []
shipments:
data:
- id: '7'
type: shipment
user:
data:
id: '1'
type: user
billing_address:
data:
id: '25'
type: address
shipping_address:
data:
id: '25'
type: address
Completed Cart:
value:
data:
id: '18'
type: cart
attributes:
number: R177608027
item_total: '474.95'
subtotal_cents: 47495
total: '527.45'
store_credit_total_cents: 0
total_cents: 52745
total_minus_store_credits: '527.45'
total_minus_store_credits_cents: 52745
ship_total: '5.0'
ship_total_cents: 500
adjustment_total: '47.5'
created_at: '2021-09-28T22:31:47.401Z'
updated_at: '2021-09-28T22:33:20.257Z'
completed_at: '2021-09-28T22:33:18.372Z'
included_tax_total: '0.0'
additional_tax_total: '47.5'
display_additional_tax_total: $47.50
display_included_tax_total: $0.00
tax_total: '47.5'
currency: USD
state: complete
token: 5DUe7Jg40Lu-SoEvAKRKcQ1632868307387
email: spree@example.com
display_item_total: $474.95
display_ship_total: $5.00
display_adjustment_total: $47.50
display_tax_total: $47.50
promo_total: '0.0'
promo_total_cents: 0
display_promo_total: $0.00
item_count: 5
special_instructions: null
display_total: $527.45
display_total_minus_store_credits: 52745
pre_tax_item_amount: '474.95'
display_pre_tax_item_amount: $474.95
pre_tax_total: '479.95'
display_pre_tax_total: $479.95
shipment_state: ready
payment_state: paid
relationships:
line_items:
data:
- id: '1'
type: line_item
variants:
data:
- id: '131'
type: variant
promotions:
data:
- id: '2'
type: promotion
payments:
data:
- id: '1'
type: payment
shipments:
data:
- id: '1'
type: shipment
user:
data:
id: '1'
type: user
billing_address:
data:
id: '5'
type: address
shipping_address:
data:
id: '5'
type: address
Completed Cart with all included objects:
value:
data:
id: '18'
type: cart
attributes:
number: R177608027
item_total: '474.95'
total: '527.45'
ship_total: '5.0'
adjustment_total: '47.5'
created_at: '2021-09-28T22:31:47.401Z'
updated_at: '2021-09-28T22:57:22.132Z'
completed_at: '2021-09-28T22:33:18.372Z'
included_tax_total: '0.0'
additional_tax_total: '47.5'
display_additional_tax_total: $47.50
display_included_tax_total: $0.00
tax_total: '47.5'
currency: USD
state: complete
token: 5DUe7Jg40Lu-SoEvAKRKcQ1632868307387
email: spree@example.com
display_item_total: $474.95
display_ship_total: $5.00
display_adjustment_total: $47.50
display_tax_total: $47.50
promo_total: '0.0'
display_promo_total: $0.00
item_count: 5
special_instructions: null
display_total: $527.45
pre_tax_item_amount: '474.95'
display_pre_tax_item_amount: $474.95
pre_tax_total: '479.95'
display_pre_tax_total: $479.95
shipment_state: shipped
payment_state: paid
relationships:
line_items:
data:
- id: '1'
type: line_item
variants:
data:
- id: '131'
type: variant
promotions:
data:
- id: '2'
type: promotion
payments:
data:
- id: '1'
type: payment
shipments:
data:
- id: '1'
type: shipment
user:
data:
id: '1'
type: user
billing_address:
data:
id: '5'
type: address
shipping_address:
data:
id: '5'
type: address
included:
- id: '1'
type: line_item
attributes:
name: 3 4 Sleeve T Shirt
quantity: 5
price: '94.99'
slug: 3-4-sleeve-t-shirt
options_text: 'Color: white, Size: XS'
currency: USD
display_price: $94.99
total: '522.45'
display_total: $522.45
adjustment_total: '47.5'
display_adjustment_total: $47.50
additional_tax_total: '47.5'
discounted_amount: '474.95'
display_discounted_amount: $474.95
display_additional_tax_total: $47.50
promo_total: '0.0'
display_promo_total: $0.00
included_tax_total: '0.0'
display_included_tax_total: $0.00
pre_tax_amount: '474.95'
display_pre_tax_amount: $474.95
compare_at_amount: '599.99'
display_compare_at_amount: $599.99
relationships:
variant:
data:
id: '131'
type: variant
- id: '2'
type: image
attributes:
transformed_url: null
styles:
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnczBPSGcwT0Q0R093WlVPZ3RsZUhSbGJuUkFDRG9QWW1GamEyZHliM1Z1WkVraUNYTm9iM2NHT3daVU9neHhkV0ZzYVhSNWFWVT0iLCJleHAiOm51bGwsInB1ciI6InZhcmlhdGlvbiJ9fQ==--d0a7a0441914cd12bba3deaa22e75ad707bbe414/Screenshot%202021-09-22%20at%2011.49.05.png
size: 48x48>
width: '48'
height: '48'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHhNREI0TVRBd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--d762ce7883e0795601c092269daa49688aa534a2/Screenshot%202021-09-22%20at%2011.49.05.png
size: 100x100>
width: '100'
height: '100'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHlOREI0TWpRd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--a2fea1e7c9a6d545cfb8bbe33a5c79fc7f8ec39f/Screenshot%202021-09-22%20at%2011.49.05.png
size: 240x240>
width: '240'
height: '240'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHhOakI0TWpBd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--325e7fb25376c8fd2db0ca1da35518354db00b11/Screenshot%202021-09-22%20at%2011.49.05.png
size: 160x200>
width: '160'
height: '200'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMDBORGg0TmpBd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--3a7df15bde83cebd64c00bfea26fd006c7f25ab2/Screenshot%202021-09-22%20at%2011.49.05.png
size: 448x600>
width: '448'
height: '600'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHlOVFI0TXpRd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--438f3bed4c80d9865e1344c03f456aaccd2a9f57/Screenshot%202021-09-22%20at%2011.49.05.png
size: 254x340>
width: '254'
height: '340'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHpOVEI0TkRZNFBnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--941f9ccf86ad66e34328dc82c0bef4655208ee17/Screenshot%202021-09-22%20at%2011.49.05.png
size: 350x468>
width: '350'
height: '468'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHlNako0TWprM1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--87e51af0bc0da167f5be35ba227a2c207dcac76a/Screenshot%202021-09-22%20at%2011.49.05.png
size: 222x297>
width: '222'
height: '297'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHlOemg0TXpjeFBnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--af798399e91d3d2d727103129483c0c59acdaa64/Screenshot%202021-09-22%20at%2011.49.05.png
size: 278x371>
width: '278'
height: '371'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMDJNREI0TmpBd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--8bb21c9fc5f9a942fa9374de8860186465d99f8e/Screenshot%202021-09-22%20at%2011.49.05.png
size: 600x600>
width: '600'
height: '600'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMHlOemg0TXpjeFBnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--af798399e91d3d2d727103129483c0c59acdaa64/Screenshot%202021-09-22%20at%2011.49.05.png
size: 278x371>
width: '278'
height: '371'
- url: /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2REdkeVlYWnBkSGxKSWd0alpXNTBaWElHT3daVU9ndHlaWE5wZW1WSklnMDJOVEI0T0Rjd1BnWTdCbFE2QzJWNGRHVnVkRUFJT2c5aVlXTnJaM0p2ZFc1a1NTSUpjMmh2ZHdZN0JsUTZESEYxWVd4cGRIbHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--5546099d5e7c15cd4ea705d244dddd64f0e47fbc/Screenshot%202021-09-22%20at%2011.49.05.png
size: 650x870>
width: '650'
height: '870'
position: 1
alt: ''
original_url: /rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac481084a722edc7b7da2d96a29c3c4f4081c234/Screenshot%202021-09-22%20at%2011.49.05.png
- id: '131'
type: variant
attributes:
sku: T-shirts_3_4sleevet-shirt_94.99_white_xs
weight: '0.0'
height: null
width: null
depth: null
is_master: false
options_text: 'Color: white, Size: XS'
options:
- name: color
value: white
presentation: White
- name: size
value: XS
presentation: XS
purchasable: true
in_stock: true
backorderable: false
currency: USD
price: '94.99'
display_price: $94.99
compare_at_price: null
display_compare_at_price: null
relationships:
product:
data:
id: '15'
type: product
images:
data:
- id: '2'
type: image
option_values:
data:
- id: '1'
type: option_value
- id: '23'
type: option_value
- id: '5'
type: address
attributes:
firstname: ' Tyler'
lastname: Durden
address1: 3029 Street Way Drive
address2: Basement Entrance
city: LA
zipcode: '90210'
phone: 09128386372
state_name: California
company: Paper Street Soap Co.
country_name: United States
country_iso3: USA
country_iso: US
label: null
state_code: CA
- id: '1'
type: user
attributes:
email: spree@example.com
store_credits: 0
completed_orders: 1
relationships:
default_billing_address:
data: null
default_shipping_address:
data: null
- id: '2'
type: promotion
attributes:
name: Black Friday
description: ''
amount: '-9.6'
display_amount: -$9.60
code: BLKFRI
- id: '1'
type: payment
attributes:
amount: '527.45'
response_code: null
number: PN43O2GK
cvv_response_code: null
cvv_response_message: null
payment_method_id: '2'
payment_method_name: Check
state: completed
relationships:
source:
data: null
payment_method:
data:
id: '2'
type: payment_method
- id: '1'
type: shipment
attributes:
number: H77361385341
final_price: '5.0'
display_final_price: $5.00
state: shipped
shipped_at: '2021-09-28T22:57:22.108Z'
tracking_url: null
free: false
relationships:
shipping_rates:
data:
- id: '10'
type: shipping_rate
- id: '11'
type: shipping_rate
- id: '12'
type: shipping_rate
stock_location:
data:
id: '1'
type: stock_location
422UnprocessableEntity:
description: 422 Unprocessable Entity
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Error'
examples:
422 Example:
value:
error: Example is invalid
errors:
example:
- Example is invalid
parameters:
CartIncludeParam:
name: include
in: query
schema:
type: string
description: Specify the related resources you would like to receive in the response body. [More Information](https://jsonapi.org/format/#fetching-includes).
example: line_items,variants,variants.images,billing_address,shipping_address,user,payments,shipments,promotions,gift_card
SparseFieldsCart:
name: fields[cart]
in: query
description: Specify the fields you would like returned in the response body. [More information](https://jsonapi.org/format/#fetching-sparse-fieldsets).
schema:
type: string
example: token,currency,number
securitySchemes:
api_key:
type: apiKey
name: x-spree-api-key
in: header
description: Secret API key for admin access
bearer_auth:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT token for admin user authentication
x-tagGroups:
- name: Authentication
tags:
- Authentication
- name: Products & Catalog
tags:
- Products
- Variants
- Option Types
- Custom Fields
- Channels
- name: Pricing
tags:
- Pricing
- Markets
- name: Orders & Fulfillment
tags:
- Orders
- Payments
- Fulfillments
- Refunds
- name: Customers
tags:
- Customers
- Customer Groups
- name: Promotions & Gift Cards
tags:
- Promotions
- Gift Cards
- name: Data
tags:
- Exports
- name: Configuration
tags:
- Settings
- Stock Locations
- Payment Methods
- Staff
- API Keys
- Allowed Origins
- Webhooks