Bamboo Card
POST

Place Order

Create a Bamboo order that charges an active account balance and returns the request identifier used to track fulfillment.

POST/api/integration/v1.0/orders/checkout

Follow this flow to place your first order

View all steps
1

Get catalog

Discover available products

2

Get accounts

Retrieve your accounts

3

Place order

Create an order for your customer

4

Get order

Check order status

5

Notification

Receive webhook updates

Place Order creates an order immediately. Bamboo does not create drafts or unprocessed order shells through this endpoint.

A successful response returns the submitted RequestId. Use that value with Get Order to retrieve the full order details and purchased card data.

This endpoint requires Basic Auth using your API credentials.

Request body

Send a JSON payload containing a unique RequestId, the account to charge, and the list of products to purchase.

{
  "RequestId": "97018cf7-98f5-40fc-a142-711d43a72e17",
  "AccountId": 555,
  "Products": [
    {
      "ProductId": 439685,
      "Quantity": 2,
      "Value": 10
    }
  ]
}
FieldTypeDescription
RequestIdstringUnique client-side GUID used to identify the order.
AccountIdnumberActive Bamboo account ID returned by Get Accounts.
ProductsarrayCollection of products to purchase in the same order.
ProductIdnumberProduct identifier returned by Get catalog.
QuantitynumberNumber of cards to purchase for the product.
ValuenumberFace value to issue for the selected product.

Request remarks

Validate these inputs before sending the order to Bamboo.

1

RequestId format

RequestId must be a GUID and it must be unique per client.

2

Active account

AccountId must reference an active Bamboo account returned by Get Accounts.

3

Environment matching

Sandbox AccountId values and live AccountId values are different and must not be mixed.

4

Catalog validation

ProductId must exist in your catalog and be available to your authenticated client.

5

Denomination validation

Value must fall between MinFaceValue and MaxFaceValue for the selected product.

Response and validation errors

A successful response returns the request identifier. Validation and order acceptance failures return a 400 error with a Bamboo reason code.

Successful response

FieldTypeDescription
requestIdstringThe GUID returned as a JSON string. Use it with Get Order.

400 error reasons

ReasonMeaning
WrongAccountThe supplied AccountId is invalid for the authenticated client or current environment.
InsufficientBalanceThe selected account does not have enough balance to settle the order.
InvalidProductIdsOne or more ProductId values are missing or invalid.
InvalidProductThe product configuration is invalid or cannot be ordered.
InvalidDenominationThe requested Value is outside the supported MinFaceValue and MaxFaceValue range.
NoProductsThe request body does not contain any products.
OrderAlreadyExistsThe submitted RequestId has already been used for another order.
ClientCatalogNotExistNo catalog is available for the authenticated client.
OrderNotFoundThe referenced order could not be found.
CardsLimitExceededThe requested order exceeds the 500-card maximum.
ProductIsOutOfStockThe selected product is currently unavailable.
ClientPriceInvalidThe stored client price no longer matches Bamboo pricing rules.
UserNotEnabledThe authenticated user is not enabled to place orders.

Examples

Full request and response examples for this endpoint.

Example request

Use this full request as the primary reference for client-side implementation.

cURL - cURL
# Generate token: echo -n 'YOUR_CLIENT_ID:YOUR_CLIENT_SECRET' | base64

curl --location 'https://api.bamboocardportal.com/api/integration/v1.0/orders/checkout' \
  --header 'Authorization: Basic YOUR_BASE64_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
  "RequestId": "97018cf7-98f5-40fc-a142-711d43a72e17",
  "AccountId": 555,
  "Products": [
    {
      "ProductId": 439685,
      "Quantity": 2,
      "Value": 10
    }
  ]
}'

Example response

Use this sample payload to validate parsing, field mapping, and downstream handling.

200 OK
JSON
"71ac2817-e51a-438a-bb7b-5ffdda23603c"

Ordering and pricing behavior

These rules affect how Bamboo accepts, prices, and processes order requests.

Account source

AccountId must come from the Get Accounts endpoint for the same client and environment.

Duplicate RequestId

Submitting the same RequestId again causes OrderAlreadyExists instead of creating a second order.

Immediate processing

Orders process immediately after Bamboo accepts the request. There is no draft or unprocessed order creation path.

Value meaning

Value represents the product face value, not the client settlement price.

Cross-currency example

If a EUR 10 product is settled from a USD account at an exchange rate of 1.0851, Bamboo charges USD 10.851 per card. Ordering quantity 10 results in a USD 108.51 charge.

Limits and safeguards

Throttle your ordering client and validate quantities to stay inside Bamboo operating limits.

1

Card limit per order

A single order can contain a maximum of 500 cards, and Products[].Quantity must respect that total limit.

2

Pacing between requests

Wait at least 500ms between consecutive Place Order calls.

3

Same-product burst limit

Do not submit more than 6 orders for the same product within 1 minute.

On this page

Try it out

Open the interactive API panel to test this endpoint with your own credentials.