This guide demonstrates how to integrate with the Sell Anything API by walking through the complete lifecycle of a checkout, from creation to final status.

Step 1: Create a Checkout Intent

To initiate a new checkout, send a POST request to:

POST /api/v1/checkout-intents

All processing is asynchronous. Always poll the GET endpoint after each major step.

Once in a terminal state (completed or failed), the intent is complete.

Use failureReason to display helpful error messages to users.

Step 2: Poll for awaiting_confirmation

After creating the intent, poll the following endpoint to wait for it to reach the awaiting_confirmation state:

GET /api/v1/checkout-intents/{id}

Repeat the request every few seconds until you receive:

{
  "state": "awaiting_confirmation"
}

This reflects completion of background processing (offers, shipping, costs).

Step 3: Confirm Final Pricing

Before proceeding to payment confirmation, inspect the latest checkout intent response to confirm:

  • Shipping options and pricing
  • Taxes
  • Total cost
  • Selected offer availability

Ensure your UI reflects the full final cost to the user and allows for selection or changes if applicable.

You can extract this information from the GET /api/v1/checkout-intents/{id} response payload.

Step 4: Request and Tokenize Payment

Retrieve a payment token for the credit card you want to use. Follow the steps here.

Step 5: Confirm with Payment

Once the user has reviewed the final cost and approved, confirm the intent with their payment card information:

POST /api/v1/checkout-intents/{id}/confirm

Step 6: Poll for Final State

After confirmation, poll the GET endpoint again until you reach one of the terminal states:

  • completed: Order was placed successfully.
  • failed: Something went wrong (e.g., out of stock, expired).

Example polling logic:

{
  "state": "completed"
}

or

{
  "state": "failed",
  "failureReason": {
    "code": "product_out_of_stock",
    "message": "The item is no longer available."
  }
}

This flow enables you to build a robust checkout experience around asynchronous processing and confirmation.