CryptoPay helps you accept crypto payments, create invoice links, run payouts, and receive signed webhook events.
Base URL
https://cryptopay.africa/api/v1
Create API keys from merchant dashboard, then use the public key in headers and secret key for HMAC signing.
Every request must include these headers:
X-API-KEYX-API-SIGNATUREX-API-TIMESTAMPX-API-NONCEsignature_payload = timestamp + "." + nonce + "." + sha256(raw_body)
signature = HMAC_SHA256(signature_payload, secret_key)
For POST endpoints, send Idempotency-Key to safely retry requests without duplicate resources.
POST /api/v1/invoices - Create invoiceGET /api/v1/invoices - List invoicesGET /api/v1/invoices/{id} - Get invoicePOST /api/v1/payouts - Create single payoutPOST /api/v1/payouts/batch - Create batch payoutPOST /api/v1/payouts/batch/csv - Upload CSV batchGET /api/v1/payouts/{id} - Get payoutSupported rails: TRON-USDT, ETH-USDT, BSC-USDT, TON-USDT, TON-native.
Before chain broadcast, CryptoPay validates destination format and treasury fee balance so merchants receive clear operational errors quickly.
Invalid TRON destination address formatInsufficient ETH in treasury wallet for gas feesInsufficient BNB in treasury wallet for gas feesInsufficient TON in treasury wallet for payout amount + network fee reserveTON native payouts now finalize to terminal states (completed or failed) and no longer remain stuck in processing.
POST /api/v1/webhooks - Register endpointPOST /api/v1/webhooks/{id}/rotate-secret - Rotate secretPOST /api/v1/webhooks/test - Send test eventVerify webhook signature from header X-CryptoPay-Signature.
| Currency | Symbol |
|---|---|
| USD | $ |