curl --request POST \
--url https://api.headlesscommerce.io/v1/storefront/carts/{id}/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "jsmith@example.com",
"shipping_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"billing_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"payment_method": "manual",
"note": "<string>",
"metadata": {}
}
'{
"id": "<string>",
"number": 123,
"customer_id": "<string>",
"email": "<string>",
"shipping_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"billing_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"lines": [
{
"id": "<string>",
"variant_id": "<string>",
"product_id": "<string>",
"product_name": "<string>",
"variant_name": "<string>",
"sku": "<string>",
"image_url": "<string>",
"quantity": 123,
"unit_price": {
"amount": 123,
"currency": "<string>"
},
"line_discount": {
"amount": 123,
"currency": "<string>"
},
"line_total": {
"amount": 123,
"currency": "<string>"
},
"tax_amount": {
"amount": 123,
"currency": "<string>"
},
"fulfilled_quantity": 123,
"refunded_quantity": 123
}
],
"subtotal": {
"amount": 123,
"currency": "<string>"
},
"discount_total": {
"amount": 123,
"currency": "<string>"
},
"shipping_total": {
"amount": 123,
"currency": "<string>"
},
"tax_total": {
"amount": 123,
"currency": "<string>"
},
"total": {
"amount": 123,
"currency": "<string>"
},
"refunded_total": {
"amount": 123,
"currency": "<string>"
},
"applied_discounts": [
{
"discount_id": "<string>",
"code": "<string>",
"name": "<string>",
"value": 123,
"saved": {
"amount": 123,
"currency": "<string>"
}
}
],
"shipping_method_name": "<string>",
"note": "<string>",
"payments": [
{
"id": "<string>",
"order_id": "<string>",
"provider": "<string>",
"provider_id": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
},
"created_at": "2023-11-07T05:31:56Z"
}
],
"fulfillments": [
{
"id": "<string>",
"order_id": "<string>",
"tracking_number": "<string>",
"tracking_url": "<string>",
"carrier": "<string>",
"lines": [
{
"order_line_id": "<string>",
"quantity": 123
}
],
"created_at": "2023-11-07T05:31:56Z",
"shipped_at": "2023-11-07T05:31:56Z",
"delivered_at": "2023-11-07T05:31:56Z"
}
],
"refunds": [
{
"id": "<string>",
"order_id": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
},
"reason": "<string>",
"restock": true,
"lines": [
{
"order_line_id": "<string>",
"quantity": 123
}
],
"created_at": "2023-11-07T05:31:56Z"
}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"cancelled_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"payment": {
"client_secret": "<string>",
"payment_intent_id": "<string>"
},
"toss_payment": {
"order_id": "<string>",
"order_name": "<string>",
"amount": 123,
"currency": "<string>",
"customer_email": "<string>"
}
}Checkout (Cart to Order + Payment)
Converts a cart into an order and initiates payment.
The response includes provider-specific payment data depending on payment_method:
- stripe —
paymentobject withclient_secretandpayment_intent_idfor Stripe.js - tosspayments —
toss_paymentobject with order info for TossPayments SDK - manual — No payment data; admin records payment later
curl --request POST \
--url https://api.headlesscommerce.io/v1/storefront/carts/{id}/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "jsmith@example.com",
"shipping_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"billing_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"payment_method": "manual",
"note": "<string>",
"metadata": {}
}
'{
"id": "<string>",
"number": 123,
"customer_id": "<string>",
"email": "<string>",
"shipping_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"billing_address": {
"name": "<string>",
"company": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>",
"phone": "<string>"
},
"lines": [
{
"id": "<string>",
"variant_id": "<string>",
"product_id": "<string>",
"product_name": "<string>",
"variant_name": "<string>",
"sku": "<string>",
"image_url": "<string>",
"quantity": 123,
"unit_price": {
"amount": 123,
"currency": "<string>"
},
"line_discount": {
"amount": 123,
"currency": "<string>"
},
"line_total": {
"amount": 123,
"currency": "<string>"
},
"tax_amount": {
"amount": 123,
"currency": "<string>"
},
"fulfilled_quantity": 123,
"refunded_quantity": 123
}
],
"subtotal": {
"amount": 123,
"currency": "<string>"
},
"discount_total": {
"amount": 123,
"currency": "<string>"
},
"shipping_total": {
"amount": 123,
"currency": "<string>"
},
"tax_total": {
"amount": 123,
"currency": "<string>"
},
"total": {
"amount": 123,
"currency": "<string>"
},
"refunded_total": {
"amount": 123,
"currency": "<string>"
},
"applied_discounts": [
{
"discount_id": "<string>",
"code": "<string>",
"name": "<string>",
"value": 123,
"saved": {
"amount": 123,
"currency": "<string>"
}
}
],
"shipping_method_name": "<string>",
"note": "<string>",
"payments": [
{
"id": "<string>",
"order_id": "<string>",
"provider": "<string>",
"provider_id": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
},
"created_at": "2023-11-07T05:31:56Z"
}
],
"fulfillments": [
{
"id": "<string>",
"order_id": "<string>",
"tracking_number": "<string>",
"tracking_url": "<string>",
"carrier": "<string>",
"lines": [
{
"order_line_id": "<string>",
"quantity": 123
}
],
"created_at": "2023-11-07T05:31:56Z",
"shipped_at": "2023-11-07T05:31:56Z",
"delivered_at": "2023-11-07T05:31:56Z"
}
],
"refunds": [
{
"id": "<string>",
"order_id": "<string>",
"amount": {
"amount": 123,
"currency": "<string>"
},
"reason": "<string>",
"restock": true,
"lines": [
{
"order_line_id": "<string>",
"quantity": 123
}
],
"created_at": "2023-11-07T05:31:56Z"
}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"cancelled_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"payment": {
"client_secret": "<string>",
"payment_intent_id": "<string>"
},
"toss_payment": {
"order_id": "<string>",
"order_name": "<string>",
"amount": 123,
"currency": "<string>",
"customer_email": "<string>"
}
}Authorizations
API Key. Example: sk_live_xxxxx or pk_live_xxxxx
Path Parameters
Resource ID
Body
Buyer email. Required for Guest Checkout (no customer_id). For logged-in customers, the customer email is used if omitted.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Payment provider to use.
manual— No online payment. Admin records payment later via dashboard.stripe— Creates a Stripe PaymentIntent. Returnspayment.client_secretfor client-side Stripe.js confirmation.tosspayments— Returnstoss_paymentobject for client-side TossPayments SDK. After client approval, callPOST /storefront/payments/confirm.
manual, stripe, tosspayments Optional note from the buyer
Custom key-value data
Response
Created
Order object with additional payment initialization data. Extends the standard Order schema with provider-specific fields.
draft, pending, confirmed, processing, completed, cancelled unpaid, awaiting_payment, partially_paid, paid, partially_refunded, refunded unfulfilled, partially_fulfilled, fulfilled, returned Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Stripe payment data. Only present when payment_method is stripe.
Show child attributes
Show child attributes
TossPayments payment data. Only present when payment_method is tosspayments.
Show child attributes
Show child attributes