openapi: 3.0.3
info:
title: Admin Account / Address Cart / Other 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: Cart / Other
paths:
/api/v2/storefront/cart/empty:
patch:
description: This endpoint removed all line items from the cart. Inventory that was previously taken by this order will be re-stocked.
operationId: empty-cart
responses:
'200':
$ref: '#/components/responses/Cart'
'404':
$ref: '#/components/responses/404NotFound'
security:
- orderToken: []
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/CartIncludeParam'
- $ref: '#/components/parameters/SparseFieldsCart'
summary: Empty the Cart
tags:
- Cart / Other
/api/v2/storefront/cart/estimate_shipping_rates:
get:
description: Returns a list of shipping rates for the current cart. The rates given are only estimates and can vary from the final shipping rates.
operationId: estimate-shipping-rates
parameters:
- name: country_iso
in: query
description: Pass country ISO or ISO3 symbol to get estimations for this destination. If no code is passed we'll try to use Cart shipping address country or the default Country for the current Store.
schema:
type: string
example: USA
example: USA
required: true
- $ref: '#/components/parameters/SparseFieldsShippingRate'
responses:
'200':
$ref: '#/components/responses/EstimatedShippingRates'
'404':
$ref: '#/components/responses/404NotFound'
security:
- orderToken: []
- bearerAuth: []
summary: List Estimated Shipping Rates
tags:
- Cart / Other
/api/v2/storefront/cart/associate:
patch:
description: Associates a guest cart with the currently signed in user.
operationId: associate-cart
parameters:
- name: guest_order_token
in: query
description: Token of the guest cart to be associated with user.
schema:
type: string
example: bd7SHdOAQqTsQHsjnhoWIw1633364692479
required: true
- $ref: '#/components/parameters/CartIncludeParam'
- $ref: '#/components/parameters/SparseFieldsCart'
responses:
'200':
$ref: '#/components/responses/Cart'
'403':
$ref: '#/components/responses/403Forbidden'
'422':
$ref: '#/components/responses/422UnprocessableEntity'
security:
- bearerAuth: []
summary: Associate a Cart with a User
tags:
- Cart / Other
/api/v2/storefront/cart/change_currency:
patch:
description: Changes the cart currency and recalculates the cart values.
operationId: change-currency
parameters:
- name: new_currency
in: query
description: The currency to change the cart to.
schema:
type: string
example: USD
required: true
- $ref: '#/components/parameters/CartIncludeParam'
- $ref: '#/components/parameters/SparseFieldsCart'
responses:
'200':
$ref: '#/components/responses/Cart'
'403':
$ref: '#/components/responses/403Forbidden'
'422':
$ref: '#/components/responses/422UnprocessableEntity'
security:
- orderToken: []
- bearerAuth: []
summary: Change Cart Currency
tags:
- Cart / Other
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'
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: ''
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
parameters:
SparseFieldsShippingRate:
in: query
name: fields[shipping_rate]
example: name,selected,final_price,display_final_price,cost,display_cost,tax_amount,display_tax_amount,shipping_method_id
description: Specify the fields you would like returned in the response body. [More information](https://jsonapi.org/format/#fetching-sparse-fieldsets).
schema:
type: string
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
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.
403Forbidden:
description: 403 Forbidden - You are not authorized to access this page.
content:
application/vnd.api+json:
schema:
properties:
error:
type: string
example: You are not authorized to access this page.
default: You are not authorized to access this page.
examples:
403 Example:
value:
error: You are not authorized to access this page.
EstimatedShippingRates:
description: 200 Success - Returns an array of `shipping_rate` objects.
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ShippingRate'
required:
- data
examples:
Estimated Shipping Rates:
value:
data:
- id: null
type: shipping_rate
attributes:
name: UPS Ground (USD)
selected: true
cost: '5.0'
tax_amount: '0.0'
final_price: '5.0'
shipping_method_id: '1'
display_cost: $5.00
display_final_price: $5.00
display_tax_amount: $0.00
free: false
relationships:
shipping_method:
data:
type: shipping_method
id: '1'
- id: null
type: shipping_rate
attributes:
name: UPS Two Day (USD)
selected: false
cost: '10.0'
tax_amount: '0.0'
final_price: '10.0'
shipping_method_id: '2'
display_cost: $10.00
display_final_price: $10.00
display_tax_amount: $0.00
free: false
relationships:
shipping_method:
data:
id: '2'
type: shipping_method
- id: null
type: shipping_rate
attributes:
name: UPS One Day (USD)
selected: false
cost: '15.0'
tax_amount: '0.0'
final_price: '15.0'
shipping_method_id: '3'
display_cost: $15.00
display_final_price: $15.00
display_tax_amount: $0.00
free: false
relationships:
shipping_method:
data:
id: '3'
type: shipping_method
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
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