Which account does the payout leave from?
There are two ways to send in a foreign currency. From your own account: funds leave your merchant international account, with no per-customer setup (plain FX Payouts). From a customer’s account: each customer holds their own international account and funds leave from theirs (international accounts). You pick per payout by whether you pass sender_customer_id.
| From a customer’s account | From your own account | |
|---|---|---|
| Who the sender is | Your end-user (e.g. a Pouch app user) | Your own merchant entity |
| You’re moving | Money on behalf of an end-user | Your own funds |
| Customer record | One per end-user: POST /v1/customers with type: individual | Your merchant entity, onboarded with Technest (KYB) |
| Receiving | The end-user’s own account (foreign currencies) or CAD Interac | The merchant’s international accounts |
| Sending | sender_customer_id = the end-user; funds leave the end-user’s own account | No per-payout sender; funds leave the merchant’s international account (treasury mode) |
| Payout gate (held-currency) | Sender’s own active account, else sender_account_not_provisioned | Merchant’s active international account, else no_active_international_account |
| CAD | Interac e-Transfer or EFT, no account gate either way | Interac e-Transfer or EFT, no account gate either way |
Platforms holding balances for their end-users (wallets, marketplaces, diaspora apps, and licensed money-services operators moving money on behalf of end-users) pay from a customer’s account. If you’re paying your own suppliers or payroll from your own balances, you pay from your own account. Which one your account is set up for is decided by Technest at onboarding, and it decides which gate applies.
These are the two common configurations, not an exhaustive partition: an account can have both enabled, in which case the gate follows each payout rather than the account, see Both, per payout below.
From your own account (FX Payouts)
Your merchant entity is onboarded as a business customer with Technest (KYB, beneficial owners and business documents, reviewed in roughly 1 to 5 business days). Once live, the merchant sends international payouts in treasury mode: no per-payout sender_customer_id, the sender is your merchant entity. The held-currency gate checks your merchant international account (no_active_international_account).
Swappr resolves the sender to your merchant treasury customer automatically, so for an account set up for this only, sending a per-payout sender_customer_id is rejected with customer_id_mismatch. If your account is configured to require sender identity, supply it with an inline sender block. See Sender information for the full contract and sender attribution for the error codes.
Business KYB onboarding (owners and KYB documents) is completed with Technest, not self-serve via this API today. Contact support@the-technest.com to start.
From a customer’s account (International accounts)
End-to-end, all via the public API:
- Onboard:
POST /v1/customerswithtype: individual.id_expiry_dateis required (the banking partner needs it to provision an account and it can’t be added after verification). - Verify: upload identity documents. Verification is automatic once documents are attached (a few minutes, up to ~2h).
POST /v1/customers/{id}/kycis an acknowledgement, not a separate submit. - Receive: issue the end-user their own international account (foreign currencies) or use CAD Interac.
- Send:
POST /v1/payoutswithsender_customer_id= the verified end-user. Funds leave the end-user’s own account. See the payouts reference.
Both, per payout
Technest can enable a single account for both. Where that applies, sender_customer_id is optional, and it selects the source per payout:
| You send | Attributed to | Funds leave | Held-currency gate |
|---|---|---|---|
sender_customer_id | That end-user | The end-user’s own account | sender_account_not_provisioned |
| No per-payout sender | Your treasury customer | The merchant’s international account | no_active_international_account |
customer_id_mismatch does not apply to this configuration, supplying a sender is a valid instruction, not an error. CAD is exempt from both gates on either of its rails.
This is a Technest-configured capability, not a per-request option, and paying from your own account carries the same KYB prerequisite described above. Contact support@the-technest.com if you need it.
Saving recipients works for both
POST /v1/beneficiaries only requires FX capabilities enabled, not an international account in that currency. A beneficiary is a sender-agnostic saved recipient; whether funds can actually move depends on the sender at payout time (the gates above). The capability check lives in POST /v1/payouts, not at recipient-save time.