Skip to main content
Gcashier Pay’s international remittance API lets you send funds to overseas bank accounts in local currencies across a wide range of corridors. Like currency exchange, remittances follow a two-step quote-and-confirm pattern: you first call sp1302 to get a locked rate and a quoteId, then confirm the transfer with sp1303 before the quote expires. Before you can send any remittance, the destination account must be registered as an overseas payee via sp1401.

Overview

1

Register an overseas payee (sp1401)

Submit the beneficiary’s bank account details for compliance review.
2

Get a remittance quote (sp1302)

Lock in a rate specifying either the debit amount or the arrival amount.
3

Confirm the remittance (sp1303)

Execute the transfer using the quoteId before it expires.
4

Receive the result webhook (sp3302)

Gcashier Pay posts the final SUCC or FAIL status to your callback URL.
5

Query remittance history (sp2302)

Look up past transfers by quoteId, order reference, or time range.

Step 1 — Register an Overseas Payee

Call POST /api/sp1401 with payeeType set to OVERSEAS_PAYEE to register the beneficiary’s bank account. Gcashier Pay’s compliance team reviews the registration before issuing a payeeId.

sp3401 Webhook — Payee Approval Result

Store the payeeId securely — you’ll need it for every remittance to this beneficiary.

Step 2 — Get a Remittance Quote

Call POST /api/sp1302 to lock in a remittance rate. You can specify either the debitAmount (how much you want to send from your balance) or the arriveAmount (how much the beneficiary must receive). If you provide both, arriveAmount takes precedence.

Request / Response Example

The expireTime is a Unix timestamp in milliseconds. Quotes expire quickly (typically within 30 seconds). Call sp1303 immediately after receiving the quote to avoid expiry.

debitAmount vs arriveAmount

  • Use debitAmount when you know exactly how much you want to spend from your balance and you accept the resulting arrival amount.
  • Use arriveAmount when the beneficiary must receive a precise amount (e.g., to settle a specific invoice in their local currency). If you supply both fields, arriveAmount always takes precedence.

Step 3 — Confirm the Remittance

Once you have a valid quoteId, call POST /api/sp1303 to execute the transfer. The synchronous response confirms acceptance; the definitive settlement result arrives via webhook.
A status of PROCESS is the expected initial state. Your bizFlow is the tracking reference for all subsequent queries and webhook correlation.

Step 4 — Receive the Result Webhook (sp3302)

Gcashier Pay posts the final settlement outcome to your callbackUrl once the transfer is completed or rejected. Return HTTP 200 to acknowledge receipt.

Step 5 — Query Remittance History

Use POST /api/sp2302 to retrieve past remittance records. You can query by quoteId, merOrderNo, or a time range.

Payment Purpose Codes

The purpose field is mandatory on every remittance. Select the code that best describes the underlying transaction:
When using purpose code 99, the purposeRemark field becomes mandatory. Provide a clear English description of the payment purpose to avoid compliance delays.

SWIFT Fee Direction

When payType is SWIFT, you must specify feeDirection to determine how correspondent bank charges are allocated:
Use OUR when settling invoices for a precise amount — this guarantees the beneficiary receives exactly what you specified. Use SHA for general transfers where a small fee deduction on arrival is acceptable.

Sandbox Testing

In the Gcashier Pay sandbox, the remittance outcome is determined by a single digit of the amount in your sp1302 request: For example, an arriveAmount of 72000.00 (last non-zero digit relevant for testing) — use amounts like 1000.00, 2000.00, or 3000.00 to reliably trigger success in the sandbox.