/api/v1/order/create Authentication Required
Include X-Bolt-Key, X-Bolt-Timestamp and X-Bolt-Signature. Use a current millisecond timestamp and sign the timestamp together with the exact raw request body.
Exact amount matching
Why the returned payment amount may be slightly higher
Launch plan
3 fixed digits
Business Pro
2-6 configurable
The amount is rounded up to the configured matching precision. If a pending order on the same network, currency and receiving wallet already uses that amount, a small increment distinguishes the new order. The payable amount is never below the submitted amount. Free accounts use 3 digits; Pro accounts can choose 2–6. Always use the returned payment.amount.
Matching flow
Create order
1amount
Your backend sends the settlement amount and BoltUtil returns the payable on-chain amount.
Show checkout
2payment.amount
Display the exact returned amount, network, and receiving address to the payer.
Reconcile chain
3Webhook
The monitor matches by network, address, token, amount, and order status before notifying you.
Integration notes
Display payment.amount from the create-order response, not the request amount or the original product price.
Do not round, truncate, or remove the small decimal offset when showing payment instructions.
Changing the offset precision only affects newly created orders, not existing pending orders.
Verify the Webhook signature and deduplicate notifications before fulfilling by externalOrderId and confirmed payment status. A payment awaiting confirmation is not payment success.
01. Request Body
JSON PayloadOriginal product or business order amount in the currency specified by currency. Send a string to avoid floating-point precision loss. The payer must pay the returned payment.amount rather than this value.
Your business order ID, used to associate the BoltUtil order. Queries use externalOrderId; the create response returns merchantExternalId, and Webhooks return externalOrderId.
Choose a payment network using one of the uppercase values below. For example, use BASE for Base or ERC20 for Ethereum.
Example value
"network": "BASE"Choose the payment currency. Pass only USDT or USDC; specify the network separately in network.
Example value
"currency": "USDC"Optional product or business summary for order records. The current checkout does not display this field.
Webhook receiver for this order. If omitted, the enabled default address in your merchant dashboard is used.
After payment completes or the user chooses to return, checkout redirects the browser to this URL. It is only a navigation destination and does not prove payment success.
The number of minutes an order remains payable after creation. The free plan is fixed at 30 minutes; Pro members can choose 15-60 minutes.
Merchant-defined JSON data. BoltUtil does not modify it and returns it unchanged in the create-order response, order-status response, and Webhook.
02. Response Details
application/jsondata.payment { ... }
data.time { ... }
Common errors
These are common cases. Use the actual HTTP status and response code/message to diagnose failures. An error response is not a payment result.
- 401: Check the API Key, raw-body signature and current millisecond timestamp (within 5 minutes of the server clock).
- 400: externalOrderId already exists. Query the original order instead of creating a duplicate business order.
- 400: Check required parameters, available network/asset, receiving wallet and enabled Webhook configuration.
- 429: Request rate limit or free daily order-creation quota reached. Check the business error code and message.