For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dev Portal
DocsAPI ReferenceLearnCommunityChangelog
DocsAPI ReferenceLearnCommunityChangelog
  • Overview
    • Quick Start
    • Sandboxes
    • Tools & SDKs
    • Support
  • Docs
      • Getting Started
        • Introduction to Headless Commerce
        • Creating Channels
        • Orders
        • Customers
        • PCI Compliance
        • Routes
        • Using API Site Content
    • Archive
    • Closed Beta Programs
Dev Portal
LogoLogo
On this page
  • Creating an order from a cart
  • Adding a billing address
  • Adding a consignment
  • Creating an order
  • Processing payments
  • Using the Stored Card method
  • Using the Credit Card method
  • Next steps
  • Resources
DocsStorefrontHeadless

Handling Orders

Was this page helpful?
Previous

Creating Checkouts

Next

Managing customers

Built with

This section explains how to create and manage orders for headless storefronts.

Creating an order from a cart

To successfully complete this section, you must first create a cart with a redirect URL. For instructions on how to create a cart, see the Carts article in this guide.

Adding a billing address

You can change a cart to a checkout by adding a billing address. To add a checkout billing address, send a request to the Add Checkout Billing Address endpoint. Your checkoutId will correspond with the cart ID returned by the Create a Cart endpoint. For an example request, see the End-to-End Guide: Headless Checkout Flow with REST Management APIs.

Adding a consignment

Now that you have transformed your headless cart into a checkout, you need to add a consignment with a shipping address, line items, and a shipping option. You can do so by adding and then updating a consignment. For an example request, see the End-to-End Guide: Headless Checkout Flow with REST Management APIs.

Creating an order

Now that you have added a billing address and a consignment to your checkout, you can create an order by sending a request to the Create an Order endpoint. When a new order is created by API, the order status is set to incomplete.

Request
Response
Example request: Create an order
1POST https://api.bigcommerce.com/stores/{store_hash}/v3/checkouts/{checkoutId}/orders
2Accept: application/json
3Content-Type: application/json
4X-Auth-Token: {{ACCESS_TOKEN}}

Processing payments

Depending on the shopper’s card-on-file authorization, you can use one of the following methods to process the payment.

  • Stored Card – A shopper has authorized a merchant to store their payment details.
  • Credit Card – A shopper has not authorized a merchant to store their payment details.

Using the Stored Card method

  1. Start by retrieving the available payment methods. Send a GET request to the Get Accepted Payment Methods endpoint.
Example request: Get accepted payment methods
GET https://api.bigcommerce.com/stores/{store_hash}/v3/payments/methods
Accept: application/json
Content-Type: application/json
X-Auth-Token: {{ACCESS_TOKEN}}
  1. To process a payment for an order, you must make a call to the Payments API, which requires a Payment Access Token. To generate a payment access token, or PAT, send a request to the Create Payment Access Token endpoint.
Example request: Create payment access token
POST https://api.bigcommerce.com/stores/{store_hash}/v3/payments/access_tokens
Accept: application/json
Content-Type: application/json
X-Auth-Token: {{ACCESS_TOKEN}}
{
"order": {
"id": 125,
"is_recurring": false
}
}

Make a note of the access token id. This token is required in the subsequent order payment call to the Process Payment endpoint.

  1. Send a request to the Process Payment endpoint. The headers to process a payment are different from the headers you normally send with a BigCommerce API. The Authorization bearer token is the PAT ID returned by the Create Payment Access Token endpoint (step two). To learn more, see Payments API: Stored Cards.
Request
Response
Example request: Process payment
1POST https://payments.bigcommerce.com/stores/{store_hash}/payments
2Accept: application/json
3Content-Type: application/json
4X-Auth-Token: {{ACCESS_TOKEN}}
5
6{
7 "payment": {
8 "instrument": {
9 "type": "stored_card",
10 "token": "8cdf7b6ea1b27119463bf9e5106639618cc77a9adc49f0069ca8b756cc15caee",
11 "verification_value": "1142"
12 },
13 "payment_method_id": "adyenv2.scheme",
14 "save_instrument": true
15 }
16}

Using the Credit Card method

If a shopper does not have a payment method saved on file, you can process a payment using a credit card. There are two steps to this method:

  1. Send a request to the Create Payment Access Token endpoint to get the payment access token that must be passed using the Authorization header to process the payment.

  2. Send a request to the Process Payment endpoint. The headers to process a payment are different from the headers you normally send with a BigCommerce API. The Authorization bearer token is the PAT ID returned by the Create Payment Access Token endpoint (step one). To learn more, see Payments API: Credit Cards.

Example response: Process payment
{
"data": {
"id": "693bb4cd-3f20-444a-8315-6369f582c68a",
"status": "success",
"transaction_type": "purchase"
}
}

A successful transaction will return a success status. The order status is then automatically changed to Awaiting Fulfillment. If you get a different response, see Error Codes for troubleshooting.

Next steps

  • Learn more about PCI compliance

Resources

  • End-to-End Guide: Headless Checkout Flow with REST Management APIs
  • Payments API Overview