Create Payout Request
Endpoint: POST /v2/gc/payout-requests
Description: Initiate a payout or remittance to a registered beneficiary, optionally using a locked FX rate token from the Payout Inquiry API.
Prerequisite: You must register a beneficiary before creating a payout request. Either provide a beneficiaryId from a previously registered beneficiary, or supply beneficiaryAccountName and beneficiaryAccountNumber for inline beneficiary details.
Request
Request Body Field Descriptions (JSON)
requestId
string
Yes
Unique request ID (UUID recommended) used for idempotency.
amount
string
Yes
Payout amount in payoutCurrency (decimal string, e.g. "23.57").
payoutCurrency
string
Yes
ISO 4217 currency code of the payout (e.g. USD, EUR).
payoutType
string
No
Payout channel type. Enum: DOMESTIC_PAYMENT | OVERSEA_PAYMENT | WITHDRAW | DOMESTIC_PAYMENT_FX.
beneficiaryAccountName
string
No
Full name of the beneficiary's bank account. Provide either beneficiaryAccountName + beneficiaryAccountNumber, or beneficiaryId — not both.
beneficiaryAccountNumber
string
No
Beneficiary's bank account number. Required together with beneficiaryAccountName when beneficiaryId is not provided.
beneficiaryId
string
No
Registered beneficiary ID returned by the Create Beneficiary API. Provide either this field or beneficiaryAccountName + beneficiaryAccountNumber.
receiveCurrency
string
No
ISO 4217 currency code that the beneficiary will receive (for cross-currency payouts).
clearingType
string
No
Clearing method. Enum: AUTO | SWIFT | LOCAL.
swiftCode
string
No
SWIFT/BIC code of the beneficiary's bank (required for SWIFT clearing).
feeBear
string
No
Fee-bearing arrangement. Enum: SHA (shared) | OUR (sender) | BEN (beneficiary).
feeChargeMode
string
No
Remittance fee (system handling fee) collection method. Enum: OUT (external deduction from account balance) | IN (internal deduction from payment amount).
useCode
string
No
Remittance purpose code (e.g. GOODSTRADE, SOFTWARE, ADVERTISEMENT).
remitType
string
No
Remittance speed. Enum: SPEED | NORMAL | FAST.
tradeSide
string
No
Trade direction used with FX token. Enum: CUSTOMER_SELL | CUSTOMER_BUY.
pobo
string
No
Pay-on-behalf-of flag. Enum: N (default) | Y.
payerId
string
No
Identifier of the payer when pobo=Y.
remark
string
No
Free-text remark or payment reference attached to the payout.
notifyUrl
string
No
Callback URL to receive the PAYOUT webhook notification when the payout outcome is available.
remitPurpose
string
No
High-level remittance purpose. Enum: GOODSTRADE | SERVICETRADE | OTHERS.
token
string
No
FX rate lock token obtained from the Payout Inquiry API. Required for cross-currency payouts where a rate has been pre-locked.
originalRequestId
string
No
The requestId of a previous payout request; used for supplementary or correction submissions.
clearingNetwork
string
No
Clearing network override. Enum: UNIONPAY | NCPS.
connectionMode
string
No
Connection mode for specific payment rails.
detailPath
string
No
File reference path (from the File Upload API, POST /v2/gc/files/upload) pointing to a batch transaction detail file. Required for DOMESTIC_PAYMENT batch payouts.
Field details and conditional rules
The fields below have scenario-based rules. Validate payoutType, payoutCurrency, and settlement path fields together before submitting.
payoutCurrency (string(8), required)
Meaning: Currency used for merchant payout.
Example:
CNH
Rules by payoutType:
payoutType=OVERSEA_PAYMENT: supported currencies are non-CNYcurrencies.payoutType=DOMESTIC_PAYMENT_FX: supported currencies areCNY,REFUND(refund-only CNY user), and other foreign currencies.payoutType=DOMESTIC_PAYMENT: supported currencies areCNH,CNY,REFUND(refund-only CNY user).
amount (string(18), required)
Meaning: Payout or receive amount, depending on scenario.
Example:
23.57
Scenario interpretation:
payoutType=OVERSEA_PAYMENTandtradeSide=CUSTOMER_SELL:amountis payout amount.payoutType=OVERSEA_PAYMENTandtradeSide=CUSTOMER_BUY:amountis receive amount.payoutType=DOMESTIC_PAYMENT_FX:amountis payout amount.payoutType=DOMESTIC_PAYMENT:amountis the total of payout amounts in the detail file.
payoutType (string(32), conditionally required)
Meaning: Payout type; domestic and overseas types can be used for withdrawal capabilities.
Required condition: required when
payoutTypeis notDOMESTIC_PAYMENT(default).
DOMESTIC_PAYMENT
Domestic payment (default)
OVERSEA_PAYMENT
Overseas payment
DOMESTIC_PAYMENT_FX
Trade settlement conversion mode
WITHDRAW
Withdrawal
receiveCurrency (string(8), optional)
Meaning: Currency received by the beneficiary.
Example:
CNY
Rules by payoutType:
payoutType=DOMESTIC_PAYMENTorpayoutType=DOMESTIC_PAYMENT_FX: do not provide this field.payoutType=OVERSEA_PAYMENTorpayoutType=WITHDRAW: pass the value fromaccountCurrencyin the beneficiary registration data.
detailPath (string(256), conditionally required)
Meaning: Path returned by the File Upload API for payout detail file.
Required condition: required when
payoutType=DOMESTIC_PAYMENT.Source: upload file via
POST /v2/gc/files/upload, then pass returnedpathasdetailPath.File templates: domestic payment template and salary/family-support payment template.
useCode (string(32), conditionally required)
Meaning: Payout purpose code.
Required condition: required when
payoutType=DOMESTIC_PAYMENT.
GOODSTRADE
Goods trade
GENERALTRADE
General trade (goods-arrived)
SOFTWARE
Software service
ADVERTISEMENT
Advertising service
TRANSPORT2
International transport (export sea)
TRANSPORT3
International transport (export air)
TRANSPORT5
International transport (export land)
TRANSPORT7
International transport (postal delivery)
TRAVEL
Personal travel
TRAVEL2
Business travel
SALARY
Salary
FAMILYALLOWANCE
Family support
PLANETICKET
Flight ticket
HOTELACCOMMODATION
Hotel accommodation
remitType (string(32), conditionally required)
Meaning: Distribution speed/type.
Required conditions:
Required when
payoutType=DOMESTIC_PAYMENT.Required when
payoutType=DOMESTIC_PAYMENT_FX.
Enum support by payoutType:
DOMESTIC_PAYMENT:SPEED,NORMAL(default),FASTDOMESTIC_PAYMENT_FX:SPEED,NORMAL
clearingType (string(8), conditionally required)
Meaning: Clearing path type.
Note: not required in
DOMESTIC_PAYMENT_FXmode.Required condition: required when
payoutType=OVERSEA_PAYMENTorpayoutType=WITHDRAW.
AUTO
Auto route (default)
SWIFT
SWIFT remittance
LOCAL
Local distribution
tradeSide (string(15), conditionally required)
Meaning: Trade direction for overseas cross-currency conversion logic.
Default:
CUSTOMER_SELL.Required condition: provide when
payoutType=OVERSEA_PAYMENTand payout is based on receive-amount conversion.
CUSTOMER_SELL
Convert based on payout amount
CUSTOMER_BUY
Convert based on receive amount
pobo (string(8), optional)
Meaning: Same-name payout flag.
Usage: For overseas payouts, provide this when you need to use a designated payer name.
N
Use NeoPay/Globebill payer name (default).
Y
Use merchant name as payer.
beneficiaryAccountName (string(256), conditionally required)
Meaning: Beneficiary bank account holder name.
Required condition: required when
payoutType=OVERSEA_PAYMENTorpayoutType=WITHDRAW.
beneficiaryAccountNumber (string(256), conditionally required)
Meaning: Beneficiary bank account number.
Required condition: required when
payoutTypeisOVERSEA_PAYMENT,WITHDRAW, orDOMESTIC_PAYMENT_FX.
beneficiaryId (string(64), conditionally required)
Meaning: Beneficiary identifier.
Required condition: when
payoutType=OVERSEA_PAYMENT, or whenpayoutType=WITHDRAWandpayoutCurrency!=CNY, provide either:beneficiaryId, orbeneficiaryAccountName+beneficiaryAccountNumber+clearingType.
swiftCode (string(256), conditionally required)
Meaning: SWIFT code of beneficiary account bank.
Required condition: required when
payoutType=OVERSEA_PAYMENT.
feeBear (string(4), conditionally required)
Meaning: Remittance fee-bearing method.
Required condition: required when
clearingType=SWIFT.
Supported values:
For
clearingType=SWIFT:SHA(shared),OUR(sender).For
payoutType=DOMESTIC_PAYMENT_FX:OUR(outer deduction, default),BEN(inner deduction).
feeChargeMode (string(4), optional)
Meaning: Remittance fee (system handling fee) collection method.
Example:
OUT
Supported values:
OUT
External deduction — Fees are deducted from the account balance separately from the payout amount.
IN
Internal deduction — Fees are deducted from the payment amount itself. Note: Fixed-amount arrival payouts do not support internal fee deduction.
Important: When using IN (internal deduction), the beneficiary receives the payout amount minus the system handling fee. This mode is not supported for fixed-amount-to-arrive scenarios.
remitPurpose (string(32), conditionally required)
Meaning: Payout purpose for overseas remittance.
Required condition: required when
payoutType=OVERSEA_PAYMENT.
GOODSTRADE
Goods trade
SERVICETRADE
Service trade
OTHERS
Others
clearingNetwork (string(16), conditionally required)
Meaning: Clearing network.
Required condition: required when
connectionMode=DISCONNECT.Example:
UNIONPAY
UNIONPAY
UnionPay network
NCPS
Netcom/NCPS network
Request sample
Response
Response Field Descriptions
code
number
Response code.
state
number
State of the response.
data
object
Payout request submission result.
message
string
Response message.
neoResponseId
string
Unique NeoX response identifier.
data object fields:
data object fields:payoutRequestId
string
NeoX identifier for this payout request. Use this to track the payout.
requestId
string
Echo of the requestId submitted in the request.
serialNum
string
Platform serial number assigned to this payout transaction.
status
string
Initial processing status of the payout request (e.g. PROCESSING).
Response sample
Example cURL
Notes
Requires Bearer token in the Authorization header.
The Accept-Language header can be used to specify the response language (Support: "vi", "en").
Use a unique
requestIdfor each request to avoid duplicate payout submissions.Provide either
beneficiaryId(preferred), orbeneficiaryAccountNametogether withbeneficiaryAccountNumber— not both simultaneously.For cross-currency payouts where a rate has been pre-locked, pass the
tokenreturned by the Payout Inquiry API before it expires.The payout outcome is delivered asynchronously via the
PAYOUTwebhook to thenotifyUrlsupplied in the request. Poll the result using the Get Detail Payout Request API (GET /v2/gc/payout-requests/{requestId}).The
detailPathfield must reference apathvalue returned by the File Upload API (POST /v2/gc/files/upload).
Last updated
Was this helpful?