Check payment and payout methods
Use documented capability checks to show buy-side payment methods and sell-side payout methods safely.
Payment and payout methods are flow-specific. Buy and on-ramp flows need payment-method support; sell and off-ramp flows need payout-method support. 0Gate exposes the hosted-flow checks in this guide, while 0Base has its own payment-method capability object where approved. Do not infer one product's method availability from another.
Method availability is not terminal state
A method can be listed and still fail later because of eligibility, session validation, customer action, or backend terminal state. Use method checks to shape the UI, then close attempts from signed events.
Method decision
Flow mapping
| Flow | Capability check | UI use |
|---|---|---|
| Hosted payment | Payment methods when the customer pays in. | Show supported payment choices before checkout. |
| On-ramp | Payment methods. | Let the customer choose how to pay for the crypto purchase. |
| Off-ramp | Payout methods. | Show supported payout destinations or a generic unavailable state. |
| Swap | Usually no direct payment or payout method selection. | Keep the customer inside the hosted 0Gate swap flow unless product approval says otherwise. |
Server pattern
async function listAllowedMethods(input: {
flow: 'payment' | 'on_ramp' | 'off_ramp' | 'swap';
countryCode: string;
currency: string;
}) {
if (input.flow === 'off_ramp') {
return gateCapabilities.payoutMethods({
countryCode: input.countryCode,
currency: input.currency,
});
}
if (input.flow === 'payment' || input.flow === 'on_ramp') {
return gateCapabilities.paymentMethods({
countryCode: input.countryCode,
currency: input.currency,
});
}
return [];
}UI rules
| Situation | Recommended behavior |
|---|---|
| No method is available | Show a neutral unavailable state before session creation. |
| One method is available | You can preselect it, but still let 0Gate own hosted confirmation. |
| Multiple methods are available | Show choices from your product UI, then create a constrained hosted session. |
| Method changes after country/currency changes | Clear the selected method and re-run checks. |
| The hosted flow returns failure | Show retry or support; do not expose rail or provider diagnostics. |
Guardrails
- Keep exact method labels and availability dynamic.
- Do not expose provider names, bank-routing internals, payout-operation details, or compliance rule names.
- Do not create a final receipt from method availability alone.
- Do not bypass the hosted 0Gate flow to build custom payment or payout collection.
Related pages
Lock an on-ramp flow
Use payment-method support for buy-side hosted flows.
Lock an off-ramp flow
Use payout-method support for sell-side hosted flows.
Run eligibility checks
Combine method support with country, currency, and asset checks.
Handle failed or cancelled flows
Build customer-safe recovery when a method fails inside the hosted flow.
Check currencies and assets
Use documented capability checks to keep fiat currencies, crypto assets, and product constraints inside supported bounds.
Run eligibility checks
Use documented eligibility and capability checks as read-only preflight before creating a hosted session or approved product object.