Payment Channels
Channels provide a persistent payment endpoint for receiving recurring deposits or top-ups from customers.
Channels vs. One-Time Payments
| Feature | Channel | One-Time Payment |
|---|---|---|
| Lifetime | Persistent — address stays the same | Single use — new address per payment |
| Use Case | Crypto top-ups, recurring deposits | E-commerce checkout, invoices |
| Amount | Any amount, any time | Fixed 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
- Webhooks — Listen for channel payment events
- Supported Assets — Available currencies for channels