[ENHANCED] Added delivery_address field to cardholder response objects
The delivery_address field is now included in cardholder retrieval and listing responses, providing complete delivery address information for cardholders
Affected Endpoints:
Retrieve Cardholder, response only
List Cardholders, response only
Changes:
Added delivery_address field to cardholder response objects
Field structure includes:
"delivery_address": {
"city": "Singapore",
"country": "SG",
"line1": "9 N Buona Vista Dr",
"state": "Singapore",
"line2": "THE METROPOLIS",
"postal_code": "138666"
}
Enhanced Chinese Character Support for Company Names
[ENHANCED] Added support for Chinese parentheses in company names and account holder names for specific payment conditions
Enhanced input validation to support Chinese parentheses () in company_name and account_holder fields when bank_country_code = CN, account_currency_code = CNH, payment_method = LOCAL, entity_type = COMPANY
Affected Endpoints:
Create Payout, request only
Create Beneficiary, request only
Changes:
Added: Support for Chinese parentheses in company_name field
Added: Support for Chinese parentheses in account_holder field
Notes:
This enhancement improves user experience for Chinese companies using local payment methods
Only applies to specific payment conditions
Relaxed Input Validation for Local Payments
[ENHANCED] Removed input validation for certain fields when using local payment methods with non-CNH/SGD currencies
Disabled input validation for multiple fields when payment_method = LOCAL and account_currency_code is not CNH or SGD
Affected Endpoints:
Create Payout, request only
Create Beneficiary, request only
Changes:
Updated: bank_details.account_holder field validation
Updated: first_name & last_name field validation
Updated: company_name field validation
Updated: address.street_address field validation
Updated: address.city field validation
Updated: address.state field validation
Notes:
Validation is only relaxed for local payments with currencies other than CNH or SGD
This change provides more flexibility for international local payment processing
Enhanced Payout Reference Validation Rules
[ENHANCED] Updated validation rules for payout_reference field based on payment method and currency
Adjusted payout_reference field validation to provide different rules for SWIFT payments and LOCAL payments with non-CNH/SGD currencies
Affected Endpoints:
Create Payout, request only
Changes:
Updated: payout_reference validation rules based on payment method and currency:
SWIFT payments: New validation pattern /^[a-zA-Z0-9/-?:().'+, ]+$/ (supports space and additional special characters)
LOCAL payments: No validation when payment_method = LOCAL and account_currency_code is not CNH or SGD
Invoice Document Requirement for INR Cross-Currency Payouts
Cross-currency payouts to INR now require invoice document upload in the documentation field
Affected Endpoints:
Create Payout, request only
Changes:
Added: Mandatory invoice document requirement
Notes:
Applies when beneficiary.bank_details.account_currency_code = "INR" and clearing_system = "IFSC"
Invoice document must be uploaded in the documentation field
Removed OTHER_SERVICES from Purpose Code Enumeration
[BREAKING] Removed OTHER_SERVICES option from purpose_code field enumeration
The OTHER_SERVICES value has been removed from the purpose_code field options in Create Payout endpoint
Affected Endpoints:
Create Payout, request only
Changes:
Removed: OTHER_SERVICES from purpose_code enumeration
Notes:
This is a breaking change - existing integrations using OTHER_SERVICES will need to update their purpose_code values
Acquiring
New Webhook Event for Payment Intent
[NEW] Added new webhook event to notify when payment requires customer interaction for authentication
Added Webhook:
acquiring.payment_intent.requires_action
Notes:
This webhook is triggered when payment intent status is REQUIRES_CUSTOMER_ACTION and occurs during customer interaction phase for authentication purposes
[BREAKING]Changed document-related fields from object to array in Create SubAccount
Updated the data type for multiple file/document fields in Create SubAccount API, allowing multiple documents to be provided instead of a single object.
Affected Endpoints:
Create SubAccount, request only
Changes:
identity_verification.identity_docs: changed from object → array
ownership_details.shareholder_docs: changed from object → array
ownership_details.representatives.identity_docs: changed from object → array
company_info.certification_of_incorporation: changed from object → array
proof_documents.proof_of_address: changed from object → array
proof_documents.source_of_funds: changed from object → array
proof_documents.proof_of_position_and_income: changed from object → array
Banking
Cross Currency Payout
To supports customers payout funds in any currency, and recipients receiving funds in any currency
Supported currencies depend on actual configuration, check here for details
Affected Endpoints:
Create Quote, request only
Added the transaction_type field with the following enumeration values:
conversion: This value is used by default if this field is left blank. It can only be used for currency conversion.
payout: Cross-currency payout. Can only be used for payouts.
Create Payout, request only
Added the payout_currency and payout_amount fields, which represent the actual currency and amount received by the recipient.
Added quote_id field, which is obtained from the Create Quote API when pre-locking the exchange rate and will be associated with the cross-currency payout.
For specific scenarios (such as when entity_type = INDIVIDUAL, bank_details.bank_country_code = SG, and bank_details.account_currency_code = SGD), stricter account_holder name validation rules will be applied. If such validation is triggered, the error message returned by the API will indicate clearly.
[BREAKING]Added restrictions to Payout reference
Affected Endpoints:
Create Payout, request only
Affected Fields:
payout_reference
Changes/ New validation:
Only alphabetic characters, numbers, spaces, commas ,, and periods . are allowed.
Issuing
Added new fields for reports
Affected Reports:
Card Transaction Report
Card Settlement Report
Changes:
Added new field Ori Transaction Id
Introduced Bulk Virtual Card Creation API
Added a new endpoint to support bulk creation of virtual cards.
The email and nickname fields for all beneficiaries are now optional.
Affected Endpoints:
Create Beneficiary, request only
Create Payout, request only
Changes:
email: Required → Optional
nickname: Required → Optional
Field adjustments for Singapore (SGD) accounts
When bank_details.bank_country_code = SGandbank_details.account_currency_code = SGD, several request fields are adjusted.
Affected Endpoints:
Create Beneficiary, request only
Create Payout, request only
Changes:
company_name: Removed
first_name: Removed
last_name: Removed
email: Changed to optional
nickname: Changed to optional
address.country: Removed
address.street_address: Removed
address.city: Removed
address.state: Removed
address.postal_code: Removed
[BREAKING] New validation rule for bank_details.account_holder
A new format validation applies only when all three conditions are met:
entity_type = INDIVIDUAL
bank_details.bank_country_code = SG
bank_details.account_currency_code = SGD
Affected Endpoints:
Create Beneficiary, request only
Create Payout, request only
Changes:
New validation requirements for bank_details.account_holder:
Only English letters (A–Z, a–z) and spaces are allowed
Length must be 2–140 characters
Must include a space separating first and last name
If any condition is not met, the previous validation rules remain unchanged
Card Issuing
Added consumed_amount field
Introduced new field consumed_amount in List and Retrieve Card API responses, representing the cumulative amount of the card limit that has already been used.
Added new Payment Attempt (PA) webhooks to improve the timeliness of payment result notifications.
Added Webhoooks:
acquiring.payment_attempt.created: triggered when PA status is INITIATED.
acquiring.payment_attempt.capture_requested: triggered when PA status is CAPTURE_REQUESTED. Receiving this event indicates the consumer has completed the payment, and the corresponding PI transitions to SUCCESS.
acquiring.payment_attempt.cancelled: triggered when PA status is CANCELLED.
acquiring.payment_attempt.failed: triggered when PA status is FAILED.
For one-to-one mapping (one PI contains only one PA): the corresponding PI can be considered failed as well (actually the PI itself transitions to FAILED after the system auto-close the PI).
For one-to-many mapping (one PI may include multiple PAs): the failure of one PA does not mean the PI has failed, and merchants can still initiate other PAs under the same PI.