Discover required fields
CallGET /api/payouts/account-requirements with a target currency before creating a recipient. The response lists each account type (for example iban, sort_code, aba) and the fields it needs, including validation rules and allowed values.
Dynamic requirements
Some fields haverefreshRequirementsOnChange: true. When a user changes one of these, POST the current form state back to POST /api/payouts/account-requirements to get an updated field list.
React to a change
When a
refreshRequirementsOnChange field changes (for example legalType from PRIVATE to BUSINESS), POST the current type and details.Create a recipient
CallPOST /api/payouts/recipients with the currency, type, accountHolderName, and the details you collected.
When an account type requires an address,
details.address.country must be an ISO 3166-1 alpha-2 code (two letters, for example US, GB, DE). Country names and three-letter codes are rejected with 400.Email recipients
For EUR payouts you can create an email-based recipient instead of collecting bank details. Passtype: "wise_email_recipient" with currency: "EUR" and details: { "email": "recipient@example.com" }. No requirements lookup is needed, and email recipients carry no transfer fee.
The wallet field
The wallet field is conditionally required: it is only needed if your account requires KYC verification. When required, it must be a KYC-verified EVM or SVM address — verify at kyc.madhousewallet.com. If KYC is not enabled for your account, you may omit it. See Compliance.
Update and delete
PATCH /api/payouts/recipients/{id}updatesaccountHolderNameand/ordetails. An update may issue a new recipientid— always use theidfrom the response for later calls.DELETE /api/payouts/recipients/{id}deactivates a recipient. Thewalletis passed as a query parameter here, since DELETE carries no body. Any in-progress transfers for the recipient are markedfailedbefore deletion; the response’stransfers_failedcount shows how many were cancelled.
