API Reference
Integrate receivecoins.com to create payments, receive webhook confirmations, and send payouts, without building card-acquiring infrastructure.
Getting started
The receivecoins.com API is a REST API that returns JSON. Every request and response uses HTTPS. A typical integration creates a payment, redirects or embeds the returned checkout URL, and listens for a webhook once the payment confirms on-chain.
https://api.receivecoins.com/v1 Authentication
Requests are authenticated with a secret API key, sent as a bearer token. Keys are scoped to test or live mode and are generated from the merchant panel.
curl https://api.receivecoins.com/v1/payments \
-H "Authorization: Bearer sk_live_••••••••••••" \
-H "Content-Type: application/json" Create a payment
POST/v1/payments
Creates a payment request and returns a hosted checkout URL along with the payment object. The customer selects a coin and network on the checkout page.
{
"amount": 250.00,
"currency": "USD",
"order_id": "100482",
"coins": ["usdt", "usdc", "dai"],
"webhook_url": "https://yourapp.com/webhooks/receivecoins",
"success_url": "https://yourapp.com/orders/100482/success",
"metadata": { "customer_id": "cus_8213" }
} {
"id": "pay_3f8a2b1c",
"status": "pending",
"checkout_url": "https://pay.receivecoins.com/pay_3f8a2b1c",
"amount": 250.00,
"currency": "USD",
"created_at": "2026-08-09T14:02:11Z"
} Retrieve a payment
GET/v1/payments/{id}
Returns the current state of a payment, including the coin and network the customer selected once they reach the checkout screen.
{
"id": "pay_3f8a2b1c",
"status": "confirmed",
"coin": "usdt",
"network": "TRC-20",
"amount_received": "250.00",
"tx_hash": "0x9a1c3f7b2e8d4a6c1f0b9e2d3a4c5e6d7f8091ab",
"confirmed_at": "2026-08-09T14:07:44Z"
} Webhooks
receivecoins.com sends a signed POST request to your webhook_url when a payment's status changes. Verify the Receivecoins-Signature header against your webhook signing secret before trusting the payload.
| Event | Description |
|---|---|
payment.confirmed | Payment reached the required confirmations and settled. |
payment.underpaid | Funds received were below the requested amount. |
payment.expired | No payment was received before the checkout window closed. |
payment.flagged | Blocked by risk screening, if monitoring is enabled. |
payout.sent | An outbound payout was broadcast to the network. |
Payouts
POST/v1/payouts
Sends funds from your receivecoins.com balance to an external wallet address. Payouts are subject to the same network confirmation rules as inbound payments.
{
"coin": "usdc",
"network": "ERC-20",
"amount": "1000.00",
"destination": "0x8f2a3Cc1B4E9d7F1a2B3c4D5e6F7089AbCdEf012"
} Assets & networks
Currently supported coins and the networks available for each. Additional networks and assets are added as they reach production readiness.
| Coin | Networks |
|---|---|
usdt | ERC-20, TRC-20, Base, BNB Chain, Arbitrum One |
usdc | ERC-20, TRC-20, Base, BNB Chain, Arbitrum One |
dai | ERC-20, Base, Arbitrum One |
Confirmations
A payment moves from pending to confirmed once it reaches the confirmation threshold for its network. Typical thresholds are higher for networks with faster block times to account for reorg risk, and are configurable per merchant.
Sandbox mode
Test API keys (sk_test_…) create payments against a simulated network, so you can build and test your integration without moving real funds. Sandbox payments can be advanced through status changes from the merchant panel.
Rate limits
Requests are limited per API key. Current defaults are generous for typical integration and polling patterns; contact us if your integration needs a higher ceiling. Rate-limited responses return 429 with a Retry-After header.
Error codes
| Status | Meaning |
|---|---|
400 | Malformed request or missing required field. |
401 | Missing or invalid API key. |
404 | Resource not found. |
409 | Payment already in a terminal state. |
429 | Rate limit exceeded. |
500 | Unexpected server error. Safe to retry with backoff. |