Dashboard flow
- Open Transfer in the merchant portal, then select Recipients.
- Select Add recipient.
- Choose whether the recipient is a UQPAY account or a bank recipient. For bank recipients, select the bank country, currency, and available payment method before entering the required bank details.
- Review and save the recipient. Its verification status appears in the Recipients list; recipients that require updated regulatory information are marked in the list.
API integration flow
Use this flow when creating beneficiaries through API:- Get supported payment methods for the beneficiary’s bank country and currency.
- Check whether a matching beneficiary already exists.
- Create the beneficiary if no reusable beneficiary is found.
- Listen for the beneficiary webhook and retrieve the beneficiary status.
- Use the
beneficiary_idwhen creating payouts. - Keep beneficiary records up to date with list, retrieve, update, and delete APIs.
account_id in the x-on-behalf-of header for beneficiary APIs. If x-on-behalf-of is omitted, the request is executed for the authenticated master account.
Step 1: List payment methods
Before collecting bank details from your user, call List Payment Methods with the beneficiary bank country and account currency.clearing_systems and payment_method combination for that country and currency.
Step 2: Prepare beneficiary details
The requirements below apply to LOCAL/SWIFT bank beneficiaries. For card recipients, use the Mastercard Send requirements. Create Beneficiary supports company and individual beneficiaries. For a company beneficiary, collect:entity_type = COMPANYcompany_name- Optional
emailandnickname payment_methodbank_detailsaddressadditional_info, when required by the payout country or currency
entity_type = INDIVIDUALfirst_nameandlast_name- Optional
email,nickname, andid_number payment_methodbank_detailsaddressadditional_info, when required by the payout country or currency
bank_details fields are:
Some currencies require
additional_info. For example, COP payouts require msisdn, and may require id_type and id_number for individual beneficiaries or tax_id for company beneficiaries. HKD local payouts also require msisdn.
Step 3: Check for an existing beneficiary
Before creating a new beneficiary, call Check Beneficiary. This helps avoid duplicate records when the same bank account has already been saved.beneficiary_id. Reuse that ID when creating a payout.
If no match is found, the response returns an empty beneficiary_id.
Step 4: Create the beneficiary
Call Create Beneficiary only when you do not already have a reusablebeneficiary_id.
beneficiary_id. This is the value you should pass in beneficiary_id when creating a payout.
Step 5: Handle the beneficiary webhook
Subscribe to Beneficiary Created events.
After receiving the webhook, you can call Retrieve Beneficiary to confirm the latest
beneficiary_status.
ACTIVE beneficiary for payouts. If the beneficiary remains PENDING, wait for the final result before initiating payout.
Step 6: Use the beneficiary in a payout
When creating a payout, pass the savedbeneficiary_id instead of repeating all beneficiary details.
beneficiary_id keeps payout requests smaller and reduces the risk of sending inconsistent bank details.
Managing beneficiaries
Use these APIs to keep your saved beneficiary records in sync:Integration recommendations
- Always call List Payment Methods before designing the input form for a new country and currency.
- Use Check Beneficiary before Create Beneficiary to avoid duplicates.
- Store both
beneficiary_idandshort_reference_id. - Keep a local mapping between your customer or vendor ID and UQPAY
beneficiary_id. - Use
x-on-behalf-ofconsistently when managing beneficiaries for sub-accounts. - Do not create payouts until the beneficiary is
ACTIVE. - Reuse existing beneficiaries for repeat payouts to the same bank account.
- Use idempotency keys for create and update requests.
API Doc
- List Payment Methods
- Check Beneficiary
- Create Beneficiary
- List Beneficiaries
- Retrieve Beneficiary
- Update Beneficiary
- Delete Beneficiary
Mastercard Send card recipients
Before collecting card details, query List Payment Methods withcountry, currency, and an explicit entity_type. Supported countries and currencies depend on the methods returned for your account; the bank payout coverage list does not establish card coverage.
Bank name, bank address, SWIFT code, IBAN, and routing codes are not Mastercard requirements. Additional field rules returned by List Payment Methods still apply. Its
clearing_systems field is plural, and validation_field contains rule objects for Mastercard. A metadata path such as beneficiary.beneficiary_bank_details.card_expiry maps to the Gateway field bank_details.card_expiry; do not copy that metadata path into the request.
Check Beneficiary uses the card number, country, currency, entity type, and clearing system without card_expiry. A match means that a saved beneficiary exists, not that a card can receive funds. Create and update use the same complete card object; update is not PATCH. Keep the expiry current before creating a payout.
See the captured card recipient examples.
