Skip to main content
POST
/
payment-methods
Create a payment method
curl --request POST \
  --url https://api.billing.io/v1/payment-methods \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "wallet_id": "<string>",
  "display_name": "USDT on Tron",
  "required_confirmations": 2,
  "min_amount_usd": 123,
  "max_amount_usd": 123,
  "is_default": false
}
'
{
  "id": "pm_1a2b3c4d5e",
  "org_id": "<string>",
  "wallet_id": "<string>",
  "display_name": "<string>",
  "is_default": true,
  "required_confirmations": 123,
  "min_amount_usd": 123,
  "max_amount_usd": 123,
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}
Register a new payment method (chain + token + wallet). Checkouts will use this to generate deposit addresses.
curl -X POST https://api.billing.io/v1/payment-methods \
  -H "Authorization: Bearer $BILLING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "wallet_id": "wal_abc123",
    "chain": "tron",
    "token": "USDT",
    "display_name": "Primary USDT on Tron",
    "is_default": true
  }'
Response
{
  "id": "pm_a1b2c3d4e5f6a7b8c9d0e1f2",
  "chain": "tron",
  "token": "USDT",
  "display_name": "Primary USDT on Tron",
  "status": "active",
  "is_default": true,
  "required_confirmations": 19,
  "created_at": "2025-01-15T12:00:00Z"
}

Authorizations

Authorization
string
header
required

Use your secret API key as a Bearer token. Keys are prefixed: sk_live_ (production) or sk_test_ (sandbox).

Body

application/json
wallet_id
string
required

The wallet identifier to receive funds

chain
enum<string>
required

Blockchain network

Available options:
tron,
arbitrum,
base
token
enum<string>
required

Stablecoin token

Available options:
USDT,
USDC
display_name
string

Human-readable display name

Maximum string length: 256
Example:

"USDT on Tron"

required_confirmations
integer

Number of block confirmations required

Required range: x >= 1
min_amount_usd
number<double> | null

Minimum checkout amount in USD

max_amount_usd
number<double> | null

Maximum checkout amount in USD

is_default
boolean
default:false

Whether this is the default payment method

Response

Payment method created

id
string

Unique identifier (prefixed pm_)

Example:

"pm_1a2b3c4d5e"

org_id
string

Organization identifier

wallet_id
string

Wallet identifier receiving funds

chain
enum<string>

Blockchain network

Available options:
tron,
arbitrum,
base
token
enum<string>

Stablecoin token

Available options:
USDT,
USDC
display_name
string | null

Human-readable display name

status
enum<string>
  • active — Payment method is available for use
  • disabled — Payment method has been disabled
Available options:
active,
disabled
is_default
boolean

Whether this is the default payment method

required_confirmations
integer

Number of block confirmations required

min_amount_usd
number<double> | null

Minimum checkout amount in USD

max_amount_usd
number<double> | null

Maximum checkout amount in USD

environment
enum<string>
Available options:
live,
sandbox
created_at
string<date-time>
updated_at
string<date-time>