2026-04-02
by marshallAcquiring
[ENHANCED] Create Payout: New payout_account_id Field for Internal Account Transfers
Payout creation now supports an optional payout_account_id parameter, enabling merchants to route payout funds to a UQPAY internal account instead of the pre-configured external bank account.
-
Affected Endpoints:
- Create Payout, request only
-
Changes:
- New optional field
payout_account_idadded to the request body - When omitted, existing behavior is preserved — funds are sent to the configured external bank account
- When provided, the payout is processed as a UQPAY internal transfer to the specified account
- Both long and short UQPAY account IDs are accepted
- New optional field
-
Notes:
- The
payout_account_idshould match the calling account: pass the sub-account ID when calling from a sub-account, or the master account ID when calling from the master account - This is a non-breaking, backward-compatible change — no action required for existing integrations
- The
Issuing
[ENHANCED] Cardholder KYC System Reform: Multi-Level KYC Support
Cardholder creation, update, and card issuance now support tiered KYC levels based on card BIN requirements. Two new webhook events are introduced for KYC lifecycle tracking.
Create & Update Cardholder: Multi-Level KYC
-
Affected Endpoints:
- Create Cardholder, request and response
- Update Cardholder, request and response
-
Changes:
- Three KYC levels now supported:
SIMPLIFIED— basic fields only, behavior identical to previous version,cardholder_statusset toSUCCESSimmediatelySTANDARD— requiresnationality,identity,residential_address, triggers review processENHANCED— additionally requireskyc_verification, supportingTHIRD_PARTYandSUMSUB_REDIRECTmethods
- New request fields:
gender,nationality,identity(object),residential_address(object),kyc_verification(object) - New response fields:
cardholder_status,idv_verification_url,idv_url_expires_at
- Three KYC levels now supported:
-
Notes:
- When no new fields are provided, behavior remains fully backward compatible
- Updating KYC-related fields is not allowed while
cardholder_statusisPENDING residential_addressreplaces the previousdelivery_addressfield
Retrieve Cardholder Response: New Fields
-
Affected Endpoints:
- Retrieve Cardholder, response only
- List Cardholders, request and response
-
Changes:
- New response fields:
gender,nationality,residential_address,cardholder_status,review_status,idv_status,idv_verification_url,idv_url_expires_at - List Cardholders accepts a new query parameter
cardholder_statusfor filtering by status
- New response fields:
Create Card: Supplementary Cardholder KYC
-
Affected Endpoints:
- Create Card, request and response
-
Changes:
- New optional request object
cardholder_required_fields— allows merchants to supplement missing cardholder KYC fields at card creation time (includesgender,nationality,phone_number,date_of_birth,residential_address,identity,kyc_verification) - New response fields:
cardholder_status,message
- New optional request object
-
Notes:
- If the cardholder does not meet the product's requirements and
cardholder_required_fieldsis not provided, the errorkyc_insufficientis returned withmissing_fields - When card creation triggers a KYC review, the card enters
PENDINGstatus and is automatically activated upon approval
- If the cardholder does not meet the product's requirements and
List Products Response: New required_fields
-
Affected Endpoints:
- List Products, response only
-
Changes:
- Each product object now includes a
required_fieldsarray indicating cardholder fields required by the card BIN - Each entry contains:
name,type(stringorobject),required(boolean),description, andfields(sub-fields when type isobject)
- Each product object now includes a
[NEW] Cardholder KYC Webhook Events
- New Webhook Events:
cardholder.kyc.status_changed— Cardholder KYC status changescardholder.updated— Cardholder information updated
