Orders API

The Orders API allows you to search orders, retrieve a specific order, or update order information.

GET /orders

Retrieve all completed orders.

Resource URL

GET https://app.snipcart.com/api/orders

Headers

Name Value Required Description
Accept application/json Yes Must always be set. The API only supports JSON.

Query Parameters

Name Required Type Description
offset No int Number of results to skip. Default: 0.
limit No int Number of results to fetch. Default: 20.
status No string Filter orders by status. Values: InProgress, Processed, Disputed, Shipped, Delivered, Pending, Cancelled.
invoiceNumber No string Filter by invoice number.
productId No string Returns orders containing this product. Must be the user-defined ID, not Snipcart’s internal ID.
placedBy No string Name of the purchaser.
from No datetime Return orders placed after this date.
to No datetime Return orders placed before this date.
isRecurringOrder No bool Filter by recurring orders (true/false).
billingAddressCity No string Exact match on billing city.
billingAddressCountry No string Exact match, 2-letter country code.
billingAddressProvince No string Exact match on billing province/state.
billingAddressPostalCode No string Exact match on billing postal/ZIP code.
shippingAddressCity No string Exact match on shipping city.
shippingAddressCountry No string Exact match, 2-letter country code.
shippingAddressProvince No string Exact match on shipping province/state.
shippingAddressPostalCode No string Exact match on shipping postal/ZIP code.

Example request

curl -H "Accept: application/json" \
  "https://app.snipcart.com/api/orders?offset=0&limit=50&status=Processed" \
  -u {API_KEY}:

Example response

{
  "totalItems": 10,
  "offset": 0,
  "limit": 50,
  "items": [
    {
      "token": "d16e2f60-39f1-4a4c-b1c3-8a2e166d3f70",
      "creationDate": "2013-10-21T20:36:26.46Z",
      "status": "Processed",
      "paymentMethod": "CreditCard",
      "invoiceNumber": "SNIP-0001",
      "email": "geeks@snipcart.com",
      ...
    }
  ]
}

GET /orders/{token}

Retrieve a single order, including all items, promo codes, and applied taxes.

Resource URL

GET https://app.snipcart.com/api/orders/{token}

Headers

Name Value Required Description
Accept application/json Yes Must always be set.

Path Parameters

Name Required Type Description
token Yes guid The unique order token.

Example request

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/orders/{token} \
  -u {API_KEY}:

Example response

{
  "token": "93c4604e-35ac-4db7-b3f1-2871476e9e6a",
  "status": "Processed",
  "invoiceNumber": "SNIP-1427",
  "items": [
    {
      "id": "1",
      "name": "Un poster",
      "price": 300,
      "quantity": 1,
      ...
    }
  ],
  "taxes": [
    { "taxName": "TPS", "taxRate": 0.05, "amount": 12.5 },
    { "taxName": "TVQ", "taxRate": 0.09975, "amount": 24.94 }
  ],
  ...
}

PUT /orders/{token}

Update the status of a specific order. Use this endpoint to set tracking information, change status, or attach metadata.

⚠️ Important: Changing an order’s status from PendingProcessed and payment status from AuthorizedPaid will capture the payment (only applies to two-step Stripe payments).

Resource URL

PUT https://app.snipcart.com/api/orders/{token}

Headers

Name Value Required Description
Accept application/json Yes Must always be set.
Content-Type application/json Yes JSON only. Other content types (e.g., XML) are not supported.

Path Parameters

Name Required Type Description
token Yes guid The unique order token.

Body Parameters

Name Required Type Description
status Yes string New order status. Values: InProgress, Processed, Disputed, Shipped, Delivered, Pending, Cancelled.
paymentStatus No string Payment status. Values: Paid, Deferred, PaidDeferred, ChargedBack, Refunded, Paidout, Failed, Pending, Expired, Cancelled, Open, Authorized.
trackingNumber No string Tracking number for the order.
trackingUrl No string Tracking URL for the customer.
metadata No object Arbitrary JSON object with custom metadata. Example: { "internal_id": "12345", "external_user_id": "user_1" }.

Example request

curl -X PUT https://app.snipcart.com/api/orders/{token} \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -u {API_KEY}: \
  -d '{"status": "Delivered"}'

Example response

{
  "token": "c7af6278-1c06-411d-b009-22a839efda75",
  "status": "Delivered",
  "invoiceNumber": "SNIP-1427",
  "items": [
    {
      "id": "1",
      "name": "Un poster",
      "price": 300,
      "quantity": 1
    }
  ],
  "taxes": [
    { "taxName": "TPS", "taxRate": 0.05, "amount": 12.5 },
    { "taxName": "TVQ", "taxRate": 0.09975, "amount": 24.94 }
  ],
  ...
}

GET /orders/{token}/digital

Return the list of digital goods attached to an order.

Resource URL

GET https://app.snipcart.com/api/orders/{token}/digital

Headers

Name Value Required Description
Accept application/json Yes Must always be set.

Path Parameters

Name Required Type Description
token Yes guid The unique order token.

Response

An array of CustomerOrderDigitalGoodDto objects:

Field Type Description
fileGuid string Unique identifier of the digital file.
name string Display name of the digital good.
url string Download URL for the file.
downloadedNbrTime int Number of times the item has been downloaded.
maxNbrDownload int? Maximum allowed downloads; null means unlimited.
daysUntilExpire int? Number of days the download link remains valid after creationDate; null means it does not expire. (JSON key is daysUntilExpire. The backing property name contains a typo intentionally, but the API output uses the correct spelling.)
creationDate datetime UTC date the digital good was created/issued.
isValid bool true if both conditions are met: downloads have not reached maxNbrDownload (or unlimited), and the item is not expired based on daysUntilExpire and creationDate.

Validity logic (for reference):

isValid =
  (maxNbrDownload == null || downloadedNbrTime < maxNbrDownload) &&
  (daysUntilExpire == null || (nowUtc - creationDate).TotalDays <= daysUntilExpire)

Example request

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/orders/{token}/digital \
  -u {API_KEY}:

Example response

[
  {
    "fileGuid": "7e3f0c7a-2b4e-4db8-9b0a-0f9a8b2b8c11",
    "name": "Album – FLAC",
    "url": "https://cdn.example.com/dl/7e3f0c7a-2b4e-4db8-9b0a-0f9a8b2b8c11",
    "downloadedNbrTime": 1,
    "maxNbrDownload": 5,
    "daysUntilExpire": 30,
    "creationDate": "2025-09-01T12:34:56Z",
    "isValid": true
  },
  {
    "fileGuid": "a1b2c3d4-e5f6-47a8-9abc-def012345678",
    "name": "E-book (PDF)",
    "url": "https://cdn.example.com/dl/a1b2c3d4-e5f6-47a8-9abc-def012345678",
    "downloadedNbrTime": 3,
    "maxNbrDownload": 3,
    "daysUntilExpire": null,
    "creationDate": "2024-10-22T08:10:00Z",
    "isValid": false
  }
]

Was this article helpful?