Create and manage orders
Create a purchase, open checkout, issue refunds, and manage delivery.
An order represents one purchase and contains one or more line items. Each line item describes a purchased product variant. Create an order, then use its ID for checkout, refunds, or delivery actions. Checkout URLs appear only in order creation and checkout responses. Existing invoice operations remain available for integrations that use them.
Use POST /v2/orders/wallet to create and pay from an existing customer wallet in one call. This debits the full order total and queues fulfillment. It requires both invoice and wallet:write API-key abilities and the matching store permissions. Subscriptions and partial wallet payments are not supported. Existing orders can use /wallet-payments only while pending and without a payment method or checkout session.
Every mutation below requires Idempotency-Key. Reuse it only for the same intended change.
A subscription plan has its own rules for carts, quantity, trial pricing, coupons, and customers who already hold the plan. See Buying a plan before you sell one.
Checkout returns 201 with payment.checkout_url for a new payment session, and 200 when the order already has one. An order that costs nothing, or that the customer wallet covers in full, is marked as paid and returns 200 with a null payment.checkout_url. A free trial sold through Stripe, PayPal, or Razorpay still returns its URL, because the customer has to authorise the subscription with that provider, and the order stays PENDING until they do. An unpaid order that sold a trial stops being payable after 72 hours, or on those three providers once the trial is about to end. Checkout then returns 422 on order.checkout, and the customer has to start a new checkout.
Provide your SellApp API key as a bearer token.
In: header
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
8 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "customer_email": "maya@example.com", "payment_method": "STRIPE", "product_variants": { "4321": { "quantity": 1 } } }'{
"data": {
"id": 9001,
"status": "PENDING",
"timeline": [
{
"status": "PENDING",
"set_at": "2026-08-01T12:00:00Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": null,
"payment_id": null,
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true,
"checkout_url": "https://checkout.stripe.com/c/pay/cs_example"
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PENDING",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-08-01T12:00:00Z"
}
],
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:00Z"
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
8 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/wallet" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "customer_email": "maya.chen@example.com", "product_variants": { "4321": { "quantity": 1 } }, "country": "US" }'{
"data": {
"id": 9001,
"status": "PAID",
"timeline": [
{
"status": "PENDING",
"set_at": "2026-08-01T12:00:00Z"
},
{
"status": "PAID",
"set_at": "2026-08-01T12:00:01Z"
}
],
"customer": {
"id": 77,
"email": "maya.chen@example.com",
"country": "United States",
"location": "New York",
"proxied": false
},
"payment": {
"method": null,
"transaction_id": null,
"payment_id": null,
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": false,
"checkout_url": "https://sell.app/payment/status/completed/9001?signature=example"
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PAID",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-08-01T12:00:00Z"
}
],
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:01Z"
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
8 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/42/wallet-payments" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "expected_status": "PENDING" }'{
"data": {
"id": 9001,
"status": "PAID",
"timeline": [
{
"status": "PENDING",
"set_at": "2026-08-01T12:00:00Z"
},
{
"status": "PAID",
"set_at": "2026-08-01T12:00:01Z"
}
],
"customer": {
"id": 77,
"email": "maya.chen@example.com",
"country": "United States",
"location": "New York",
"proxied": false
},
"payment": {
"method": null,
"transaction_id": null,
"payment_id": null,
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": false
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PAID",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-08-01T12:00:00Z"
}
],
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:01Z"
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://sell.app/api/v2/orders/9001/status" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "status": "COMPLETED", "expected_status": "PAID" }'{
"data": {
"id": 9001,
"status": "COMPLETED",
"timeline": [
{
"status": "COMPLETED",
"set_at": "2026-09-04T09:12:00.000Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": "pi_example",
"payment_id": "pi_example",
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "COMPLETED",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-09-04T09:10:00.000Z"
}
],
"created_at": "2026-09-04T09:10:00.000Z",
"updated_at": "2026-09-04T09:12:00.000Z"
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/9001/checkout" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"id": 9001,
"status": "PENDING",
"timeline": [
{
"status": "PENDING",
"set_at": "2026-08-01T12:00:00Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": null,
"payment_id": null,
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true,
"checkout_url": "https://checkout.stripe.com/c/pay/cs_example"
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PENDING",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-08-01T12:00:00Z"
}
],
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:00Z"
},
"message": "Existing payment session has been found."
}{
"data": {
"id": 9001,
"status": "PENDING",
"timeline": [
{
"status": "PENDING",
"set_at": "2026-08-01T12:00:00Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": null,
"payment_id": null,
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true,
"checkout_url": "https://checkout.stripe.com/c/pay/cs_example"
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PENDING",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-08-01T12:00:00Z"
}
],
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:00Z"
},
"message": "A new payment session has been generated."
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/9001/replacements" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "product_variants": [ 4321 ] }'{
"data": {
"id": 9003,
"status": "PAID",
"timeline": [
{
"status": "PAID",
"set_at": "2026-09-07T12:00:00Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": "pi_example",
"payment_id": "pi_example",
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 0,
"total_cents": 0,
"total_exclusive_usd_cents": 0,
"total_usd_cents": 0
},
"coupon_id": null,
"line_items": [
{
"id": 9004,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PAID",
"currency": "USD",
"subtotal_cents": 0,
"total_exclusive_cents": 0,
"total_cents": 0,
"subscription_id": null,
"created_at": "2026-09-07T12:00:00Z"
}
],
"created_at": "2026-09-07T12:00:00Z",
"updated_at": "2026-09-07T12:00:00Z"
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/9001/refunds" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "amount": "5.00" }'{
"data": {
"order": {
"id": 9001,
"status": "COMPLETED",
"timeline": [
{
"status": "COMPLETED",
"set_at": "2026-09-04T09:12:00.000Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": "pi_example",
"payment_id": "pi_example",
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "COMPLETED",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-09-04T09:10:00.000Z"
}
],
"created_at": "2026-09-04T09:10:00.000Z",
"updated_at": "2026-09-04T09:12:00.000Z"
},
"refund": {
"status": "effective",
"provider": "stripe",
"provider_refund_id": "re_launch_lab_500",
"amount_cents": 500,
"currency": "USD"
}
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/9001/fulfillment-retries" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "email": "maya@example.com" }'{
"data": {
"id": 9001,
"status": "PAID",
"timeline": [
{
"status": "PAID",
"set_at": "2026-09-07T12:00:00Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": "pi_example",
"payment_id": "pi_example",
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "PAID",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-09-04T09:10:00.000Z"
}
],
"created_at": "2026-09-04T09:10:00.000Z",
"updated_at": "2026-09-04T09:12:00.000Z"
},
"meta": {
"effects_reset": 1
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/9001/dynamic-delivery-retries" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "delivered_product_id": 81 }'{
"data": {
"id": 9001,
"status": "COMPLETED",
"timeline": [
{
"status": "COMPLETED",
"set_at": "2026-09-04T09:12:00.000Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": "pi_example",
"payment_id": "pi_example",
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "COMPLETED",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-09-04T09:10:00.000Z"
}
],
"created_at": "2026-09-04T09:10:00.000Z",
"updated_at": "2026-09-04T09:12:00.000Z"
},
"meta": {
"queued": true
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Reuse this key only for an identical retry. A replay returns Idempotent-Replayed: true.
1 <= length <= 255Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://sell.app/api/v2/orders/9001/fulfillment-notifications" \ -H "Idempotency-Key: project-library-2026-09-04" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "email": "maya@example.com", "product_variant_ids": [ 4321 ] }'{
"data": {
"id": 9001,
"status": "COMPLETED",
"timeline": [
{
"status": "COMPLETED",
"set_at": "2026-09-04T09:12:00.000Z"
}
],
"customer": {
"id": 77,
"email": "maya@example.com",
"country": "United Kingdom",
"location": "London",
"proxied": false
},
"payment": {
"method": "STRIPE",
"transaction_id": "pi_example",
"payment_id": "pi_example",
"payment_capture_id": null,
"blockchain_txid": null,
"settlement_gateway": null,
"has_checkout_url": true
},
"totals": {
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"total_exclusive_usd_cents": 1999,
"total_usd_cents": 1999
},
"coupon_id": null,
"line_items": [
{
"id": 501,
"product_id": 120,
"product_variant_id": 4321,
"product_title": "Design kit",
"variant_title": "Standard",
"quantity": 1,
"status": "COMPLETED",
"currency": "USD",
"subtotal_cents": 1999,
"total_exclusive_cents": 1999,
"total_cents": 1999,
"subscription_id": null,
"created_at": "2026-09-04T09:10:00.000Z"
}
],
"created_at": "2026-09-04T09:10:00.000Z",
"updated_at": "2026-09-04T09:12:00.000Z"
},
"meta": {
"notifications_sent": 1
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The order identifier.
Header Parameters
Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://sell.app/api/v2/orders/9001/deliverables" \ -H "X-STORE: launch-lab"{
"data": [
{
"order_id": 9001,
"line_item_id": 9002,
"type": "manual",
"status": "delivered",
"product_variant_id": 4321,
"quantity": 1,
"deliverable": {
"types": [
"MANUAL"
],
"data": {
"manual": "Your Design kit access has been prepared."
}
},
"additional_information": []
}
]
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "conflict_error",
"code": "conflict",
"message": "The resource state changed before this request.",
"status": 409,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#conflict"
}{
"type": "invalid_request_error",
"code": "cursor_expired",
"message": "This cursor has expired. Start again without a cursor.",
"status": 410,
"param": "cursor",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#cursor-expired"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}