Skip to main content

Payment Channels

Channels provide a persistent payment endpoint for receiving recurring deposits or top-ups from customers.

Channels vs. One-Time Payments

FeatureChannelOne-Time Payment
LifetimePersistent — address stays the sameSingle use — new address per payment
Use CaseCrypto top-ups, recurring depositsE-commerce checkout, invoices
AmountAny amount, any timeFixed amount with expiry
API/api/v2/channel/api/v1/pay/summary

Create a Channel

POST /api/v2/channel
Content-Type: application/json

{
"merchantId": "your-merchant-id",
"displayCurrency": "EUR",
"payCurrency": "USDC",
"reference": "user-topup-cust-123"
}

Response:

{
"uuid": "channel-uuid",
"merchantId": "your-merchant-id",
"displayCurrency": "EUR",
"payCurrency": "USDC",
"address": {
"address": "0xCHANNEL...ADDR",
"network": "ETHEREUM"
},
"reference": "user-topup-cust-123",
"status": "ACTIVE"
}

List Channels

GET /api/v2/channel?merchantId=your-merchant-id

Get Channel by UUID

GET /api/v2/channel/{uuid}

Channel Spot Rates

Get real-time rates for a specific channel:

GET /api/v2/channel/{uuid}/spot-rates

Channel Payments

When a customer deposits funds to a channel address, a Channel Payment is created automatically.

List Channel Payments

GET /api/v1/channel-payment?merchantId=your-merchant-id

Get Channel Payment by ID

GET /api/v1/channel-payment/{id}

Webhooks

Channel payments trigger webhook events. See Webhook Events for details on channel.payment.* events.

Use Case: Crypto Top-Ups

1. Create a Channel per customer (one-time setup)
2. Show the channel address in your app
3. Customer sends crypto at any time
4. Webhook notifies you of each deposit
5. Credit the customer's balance in your system

Next Steps