
Understanding Entity Mapping for B2B Payouts
In this guide, the entities map as follows:
Flow: Your customer (a business) funds their internal account → uses your platform to send payments → to their vendors’ external bank accounts.
Get API credentials
Create Sandbox API credentials in the dashboard, then set environment variables for local use.Onboard a Customer
Onboard a customer using the hosted KYC/KYB link flow. The flow is two steps: create the customer, then generate a hosted KYC link for that customer.Create the customer
CallPOST /customers with the customer’s customerType and any details you already have.
id — you’ll use it as customerId in the next step.
Generate a KYC link
CallPOST /customers/{customerId}/kyc-link to get a single-use hosted URL.
Redirect Customer
Redirect your customer to the returnedkycUrl where they can complete their identity verification in the hosted interface.
Customer Completes Verification
The customer completes the identity verification process in the hosted KYC interface, providing required documents and information.The hosted interface handles document collection, verification checks, and compliance requirements automatically.
Track the decision
Reaching theredirectUri only means the customer finished the hosted flow — not that they were approved. Wait for the final decision via the CUSTOMER.KYC_APPROVED / CUSTOMER.KYC_REJECTED webhook (use the CUSTOMER.KYB_* siblings for business customers) — recommended — or by polling GET /customers/{customerId} and inspecting kycStatus. On APPROVED, the customer is ready to transact and you can unlock funding.
Get the Customer’s Internal Account
Once the customer is created, internal accounts will automatically be created on their behalf. Get their internal account in the desired currency for funding instructions.fundingPaymentInstructions provide the bank account details and reference code needed to fund
this internal account via ACH or wire transfer from the customer’s bank. It might also include stablecoin
funding details for instant funding of the internal account.
Fund the Internal Account
For this quickstart, we’ll fund the account using the/sandbox/internal-accounts/{accountId}/fund endpoint to simulate receiving funds.
In production, your customer would initiate a transfer from their bank or wallet to the account details provided in the funding instructions,
making sure to include the reference code FUND-ABC123 in the transfer memo if applicable.
Add the beneficiary as an External Account
Now add the beneficiary bank account where you want to send the funds. In this example, we’ll add a Mexican CLABE account as the external account.Create a quote
Create a quote to lock in the exchange rate, fees, and get the transfer details.Amount Locking: You can lock either the sending amount (
SENDING) or receiving amount (RECEIVING).
In this example, we’re locking the sending amount to exactly $500.00 USD (50000 cents). Alternatively,
you can lock the receiving amount to ensure that the receiver receives exactly some amount of the
destination currency.- Sending: $500.00 USD (including $2.50 fee)
- Receiving: $8,612.50 MXN
- Exchange rate: 17.25 MXN per USD
- Quote expires: In 5 minutes
Execute the quote
Execute the quote to initiate the transfer from the internal account to the external bank account.PROCESSING and the transfer is initiated. You’ll receive a webhook when the transfer completes:
Completion Webhook:
