Provider capabilities
Two providers sit behind the API. The endpoints are the same for both, but what each one can do differs. The table below lists only features that are implemented and available through the provider's official merchant API.
| Feature | Cryptomus | Binance Pay |
|---|---|---|
| Pay In | Hosted invoice, customer pays from any wallet | Hosted checkout, QR code or deeplink; customer pays from their Binance account |
| Pay Out | To blockchain wallet addresses (crypto_address) | To Binance accounts (binance_id, or email for whitelisted merchants) |
| Payout to an external wallet address | Not offered by the Binance Pay Merchant API | |
| Network required for payouts | Yes | No |
| Refunds | Full amount only, to a customer wallet address | Full or partial |
| Signed callbacks | Signed with the merchant API key, checked against Cryptomus's published source IP | Signed with Binance's certificate (RSA) |
| Status query | ||
| Provider sandbox | None (test webhooks only) | None |
Refunds are started by our support team from the admin panel; there is no refund endpoint in the merchant API yet.
Choosing a provider
- Leave out
providerand we use the first enabled provider, in platform priority order, that supports your currency, network, amount and (for payouts) destination type. - Set
providerto use a specific one. If it cannot handle the request, you get a clear error (for exampledestination_not_supported) instead of a silent switch. - If no provider can handle a request, the error explains why each one was skipped.
Currencies and limits
Supported currencies, networks and minimum and maximum amounts come from each provider and are synced daily. Always read them from GET /currencies rather than hard-coding them. Values may change when the provider updates its list.
Live capabilities
GET /currencies also returns each enabled provider's capabilities, so your integration can hide options a provider cannot offer. For example, hide "withdraw to wallet address" when only Binance Pay is enabled for payouts.
Status mapping
Each provider reports status in its own words. We map them to the common statuses in Pay In and Pay Out. The provider's original value is kept for our support team, but your integration only needs the common statuses.