OpenAPI Specification
openapi: 3.0.3
info:
title: Snipcart REST AbandonedCarts Orders API
description: 'The Snipcart REST API provides programmatic access to your store''s data including orders, customers, products, discounts, notifications, abandoned carts, domains, refunds, user sessions, and custom shipping methods. Authentication uses HTTP Basic Auth with a secret API key generated from the merchant dashboard. All requests must include an Accept: application/json header.
'
version: '3.0'
contact:
name: Snipcart Support
url: https://snipcart.com
license:
name: Proprietary
url: https://snipcart.com/terms-of-service
servers:
- url: https://app.snipcart.com/api
description: Snipcart API
security:
- basicAuth: []
tags:
- name: Orders
description: Manage orders and order lifecycle
paths:
/orders:
get:
summary: List all orders
operationId: listOrders
description: Retrieve all completed orders with optional filtering.
tags:
- Orders
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- name: status
in: query
schema:
type: string
enum:
- Processed
- Disputed
- Shipped
- Delivered
- Pending
- Cancelled
- name: from
in: query
schema:
type: string
format: date-time
description: Filter orders created on or after this date
- name: to
in: query
schema:
type: string
format: date-time
description: Filter orders created on or before this date
responses:
'200':
description: Paginated list of orders
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Order'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/orders/{token}:
get:
summary: Get order
operationId: getOrder
description: Retrieve a single order including all items, promo codes, and applied taxes.
tags:
- Orders
parameters:
- $ref: '#/components/parameters/orderToken'
responses:
'200':
description: Order details
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'404':
description: Order not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
put:
summary: Update order
operationId: updateOrder
description: Update the status, payment status, tracking information, or metadata of a specific order.
tags:
- Orders
parameters:
- $ref: '#/components/parameters/orderToken'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- Processed
- Disputed
- Shipped
- Delivered
- Pending
- Cancelled
paymentStatus:
type: string
enum:
- Paid
- Deferred
- PaidDeferred
- ChargedBack
- Refunded
- Paidout
- Failed
- Pending
- Cancelled
- Open
trackingNumber:
type: string
trackingUrl:
type: string
format: uri
metadata:
type: object
additionalProperties: true
responses:
'200':
description: Updated order
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'404':
description: Order not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/orders/{token}/digital:
get:
summary: Get digital goods for order
operationId: getOrderDigitalGoods
description: Return the list of digital goods attached to an order with download details and validity status.
tags:
- Orders
parameters:
- $ref: '#/components/parameters/orderToken'
responses:
'200':
description: List of digital goods
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
fileName:
type: string
url:
type: string
format: uri
expirationDate:
type: string
format: date-time
components:
schemas:
OrderItem:
type: object
properties:
uniqueId:
type: string
id:
type: string
name:
type: string
price:
type: number
format: float
quantity:
type: integer
url:
type: string
format: uri
Order:
type: object
properties:
token:
type: string
description: Unique order token
status:
type: string
description: Order status
enum:
- Processed
- Disputed
- Shipped
- Delivered
- Pending
- Cancelled
paymentStatus:
type: string
description: Payment status
enum:
- Paid
- Deferred
- PaidDeferred
- ChargedBack
- Refunded
- Paidout
- Failed
- Pending
- Cancelled
- Open
email:
type: string
format: email
description: Customer email address
total:
type: number
format: float
description: Order total
currency:
type: string
description: Currency code (ISO 4217)
completionDate:
type: string
format: date-time
description: Date and time the order was completed
trackingNumber:
type: string
description: Shipment tracking number
trackingUrl:
type: string
format: uri
description: Shipment tracking URL
items:
type: array
description: Items in the order
items:
$ref: '#/components/schemas/OrderItem'
PaginatedResponse:
type: object
properties:
totalItems:
type: integer
offset:
type: integer
limit:
type: integer
items:
type: array
items:
type: object
Error:
type: object
properties:
message:
type: string
details:
type: array
items:
type: string
parameters:
orderToken:
name: token
in: path
required: true
description: Unique order token
schema:
type: string
limit:
name: limit
in: query
required: false
description: Number of results to return per page
schema:
type: integer
default: 25
offset:
name: offset
in: query
required: false
description: Zero-based offset for pagination
schema:
type: integer
default: 0
securitySchemes:
basicAuth:
type: http
scheme: basic
description: 'Use your secret API key as the username with an empty password. Base64-encode as {API_KEY}: and pass as Authorization: Basic {encoded}.
'