Payment requests
The core of the dynamic-wallet flow: create a one-time address and amount for a payment, then track it until it's paid. All endpoints authenticate with the x-api-key header.
List assets#
List the assets you can currently collect. Use the name field as the :currency path segment when creating a payment request.
GET https://api.hbridge.cc/v1/crypto
x-api-key: sk_live_...{
"code": 200,
"data": [
{ "name": "BTC", "display_name": "Bitcoin" },
{ "name": "ETH", "display_name": "Ethereum" },
{ "name": "USDT", "display_name": "Tether" }
]
}Create payment request#
Creates a one-time deposit address for a single payment. The response data carries the address the customer must pay into and the exact amount to collect. Show these on your checkout, along with a QR code.
Create a payment request for :currency (an asset name from /v1/crypto, e.g. BTC).
| Field | Type | Required | Description |
|---|---|---|---|
| currency | string | yes | Asset code, e.g. BTC, ETH, USDT. |
| Field | Type | Required | Description |
|---|---|---|---|
| external_id | string | yes | Your unique reference for this payment. Must be prefixed with your account prefix (see External IDs). Reusing an external_id is rejected. |
| amount | string | yes | The amount to collect, in the asset's units. |
POST https://api.hbridge.cc/v1/BTC/payment-request
x-api-key: sk_live_...
Content-Type: application/json
{
"external_id": "1042-order-9f3c",
"amount": "0.0025"
}{
"code": 200,
"message": "Payment Request Received",
"data": {
"external_id": "1042-order-9f3c",
"currency": "BTC",
"address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"amount": "0.0025"
}
}The data object mirrors the payment gateway response; always render the returned address and amount rather than assuming them.
external_id can back exactly one payment request; generate a fresh one per checkout attempt.External IDs#
The external_id ties a payment to your system and must start with your account prefix followed by -. Requests whose prefix doesn't match your account are rejected with 400 Bad Request.
<prefix>-<your-reference>
# e.g. account prefix 1042:
1042-order-9f3c
1042-invoice-2026-0007Keep the reference unique and collision-free on your side (an order id plus a random suffix works well), since it's also the key you'll track the payment by.
Track payments#
Poll your payments to learn when a request has been paid. Match on the external_idyou created and check its status; a payment appears here once it's been detected and settled.
List payments for your account, so you can reconcile a payment request by its external_id.
GET https://api.hbridge.cc/payments
x-api-key: sk_live_...{
"code": 200,
"data": [
{
"external_id": "1042-order-9f3c",
"currency": "BTC",
"amount": "0.0025",
"status": "paid",
"txid": "9f2a...c81",
"paid_at": "2026-07-22T10:31:00.000Z"
}
]
}In the current dynamic-wallet system, clients confirm payments by polling this endpoint rather than receiving a webhook; the checkout callback is handled inside the platform.