Crypto
One‑Time Payments
1.
Call the Initiate Crypto Payment endpoint with order details, stablecoin choice, and expiry time.
2.
We return a deposit address (and QR code data); show it in your UI.
3.
The customer sends the exact stablecoin amount to that address before it expires.
4.
We detect on‑chain transfers and their confirmations, then POST a webhook to your
webhook url
set on your dashboard.API Reference
Webhook Notifications
POST
requests to your webhook url
set on your dashboard for these events:Event | Description |
---|---|
crypto_payment.success | Required confirmations reached (e.g., 12 for Bitcoin) |
crypto_payment.partial | Less than expected amount received before expiry |
crypto_payment.overpaid | More than expected amount received |
crypto_payment.abandoned | No transfer received before expiresAt |
crypto_payment.refund | Refund of overpaid portion started |
{
"event": "crypto_payment.success",
"payment: {
"reference": "order_12345",
"status": "success",
"amount_received": 100.00,
"chain": "ethereum",
"payer_address": "0xabc123...def456",
"transaction_hash": "0x789abc...123def",
"paid_at": "2025-04-22T10:30:00Z"
}
}
Handling Partial & Overpayments
Partial Payments
expiresAt
:1.
crypto_payment.partial
webhook, including:reference
amount_expected
(original amount
)amount_received
(actual amount on‑chain)paid_at
timestamp2.
expires_at
).3.
Overpayments
1.
crypto_payment.overpaid
webhook with:reference
amount_expected
amount_received
paid_at
timestamp2.
3.
crypto_payment.refund
.4.
Payment Statuses
Status | Meaning |
---|---|
pending | Awaiting on‑chain transfer |
processing | Transfer detected, awaiting confirmations |
success | Sufficient confirmations received |
partial | Underpayment detected |
overpaid | Overpayment detected |
abandoned | No transfer before expiry |
failed | Transfer invalid (wrong address or amount) |
refunded | Funds returned via on‑chain refund (if supported) |