Banking as a Service must be enabled for your account. If it is not, these endpoints answer
403 with code 40003 — contact the Ripio team.Common setup
1
Create the end user and approve their KYC
A fiat account is opened in the user’s name with their KYC data, so the user needs an approved KYC first. See Identity verification (KYC).→ Create End User · Create KYC Submission
2
Create the fiat account
Send the
payment_method_type (e.g. bank_transfer). The account is created asynchronously: the response comes back with status: PROCESSING, and you receive a FIAT_ACCOUNT.ENABLED webhook when it is ready, with the account details in fiat_payment_instructions (e.g. the cvu). Calling it again for the same user and payment method returns the same account.→ Create Fiat Account · Retrieve Fiat Account · BaaS WebhooksReceive fiat deposits
1
The user transfers to their fiat account
Show the user the details from
fiat_payment_instructions. Any transfer they make to that account is credited to their fiat balance.2
Follow the deposit
You receive a
FIAT_DEPOSIT.COMPLETED webhook when the deposit is credited. A deposit that exceeds the user’s limits is notified as FIAT_DEPOSIT.BLOCKED_LIMIT_EXCEEDED, and one that is returned to the sender as FIAT_DEPOSIT.CANCELLED.→ List Fiat Deposits · Retrieve Fiat DepositSend fiat withdrawals
1
Register a beneficiary fiat account
A beneficiary fiat account is the user’s external bank account, where the withdrawals go. Send the
payment_method_type, the currency and the account_fields of the destination — in Argentina, alias_or_cvu_destination; in Mexico, clabe_destination. Ripio checks that the destination exists, and you receive a BENEFICIARY_FIAT_ACCOUNT.ENABLED webhook when it can be used.→ Create Beneficiary Fiat Account · List Beneficiary Fiat Accounts2
Create the fiat withdrawal
Send the
end_user_id, the beneficiary_fiat_account_id, the amount and an external_ref. The balance is debited right away and the withdrawal starts as PENDING. Retrying with the same external_ref returns the withdrawal already created.→ Create Fiat Withdrawal3
Follow the withdrawal
You receive a
FIAT_WITHDRAWAL webhook on each status change: FIAT_WITHDRAWAL.COMPLETED when the transfer is done, or FIAT_WITHDRAWAL.CANCELLED when it could not be sent — in that case the balance is returned to the user.→ Retrieve Fiat Withdrawal · List Fiat WithdrawalsCommon errors
The full list is in Error handling.
Testing in sandbox
Simulate an incoming transfer with Simulate Fiat Deposit: send thepayment_method_type, the amount and the user’s account identifier — the cvu from fiat_payment_instructions in Argentina, or the clabe in Mexico. The deposit then goes through the same flow as a real one, including the FIAT_DEPOSIT.COMPLETED webhook.