What you’ll build
The Multi-currency Payment APIs (v2) let you collect (payin) and disburse (payout) funds across many currencies and local payment rails — bank transfers, virtual accounts, mobile money, e-wallets, and QR schemes across APAC, Africa, and Latin America. Funds settle into per-currency float accounts with automatic reconciliation.The core design principle: methods and their required fields are dynamic. Always discover the available methods and their input schema at runtime rather than hard-coding them, because coverage and requirements vary by country and currency.
Prerequisites
- Merchant account and
app-id/secret-key. - Sandbox
https://api.cleverhub.co; productionhttps://api-merchant.helloclever.co. - A webhook endpoint (TLS 1.2, public, commercial cert).
- Base paths: payins
POST /v2/payins, payoutsPOST /v2/payouts.
Payins — collecting money
1
Get payin methods
Retrieve the list of supported methods for your account / region.
2
Get payin required fields
For the chosen method, fetch its specific required input fields.
3
Create the payin
POST /v2/payins with the method name plus the required fields from the previous step.4
Simulate (sandbox only)
Call Payin Request Simulation to drive the transaction to completion for testing.
Method-specific behaviour
Some methods return apay_code to your webhook after a short delay, containing the details your customer uses to complete payment.
- jp_bank_jpy
- ar_bank_ars
- kr_bank_va_kyc_krw
- mobile_money
- kh_pay_khr
Returns
bank_name, transfer_id, branch_code, branch_name, account_number, account_name, account_type, transfer_name, expired_timestamp.Several methods require you to pick from a supported-provider list (bank codes, e-wallets, etc.) before submitting — e.g.
sa_eft_zar, my_bank_fpx_myr, th_qrpay_thb, bw_bank_bwp, and br_pix_brl (which uses crypto_ticker + crypto_wallet_address for crypto settlement). Fetch the current provider list for the method before creating the payin.After creation
- Get payin requests in a period and Get payin details for reconciliation.
- Refund payin and Cancel payin for post-payment actions.
- Your webhook fires when status changes to
receivedorreturn_received.
Payouts — sending money
1
Get payout methods
Retrieve supported outbound methods.
2
Get payout required fields
Fetch the required fields for the chosen method.
3
Create the payout
POST /v2/payouts — initialise with the required fields.Payout statuses
Provider lists and helpers
Many payout methods require selecting a bank/e-wallet from a supported list before submitting, includingvn_bank_vnd, ph_bank_php, ng_bank_ngn, sa_bank_zar, ke_bank_kes, ke_mobile_money_kes, gh_mobile_money_ghs, cm_mobile_money_xaf, ci_mobile_money_xof, my_bank_myr, the my_ewallet_*_myr family (touchngo, finexus, boost, bigpay, shopeepay, gxbank, merchantrade), br_bank_brl, th_bank_thb, bw_bank_bwp, and ph_qrph_php.
Helpers:
vn_bank_vnd— use Get Branch Codes when a branch code is required.kr_bank_krw— use the Required Field API to get the current list of supported banks.- VND Bank Lookup — a dedicated lookup (e.g. via QR content) is available for Vietnamese accounts.
After creation
- Get payout requests in a period and Get payout details for reconciliation.
- Payout Simulation (sandbox) to test the flow.
- Cancel a Scheduled Payout for payouts set to run in the future.
Supporting resources
- Balance (
Get balance detail/ history) — check per-currency float balances before disbursing. - Customer and Contact endpoints — store payer/payee identities and reuse them across transactions.
Payout funds are sourced from your per-currency float balance, made up of accumulated payins and top-ups. Ensure the relevant currency float is funded before initiating a payout.