PaymentTransfer

MEPS+ transfer

POST
/openapi/v1/payments/transfer/meps

Make a real-time local transfer in Singapore through MEPS+ (MAS Electronic Payment System).

Features:

  • SGD only
  • Real-time settlement
  • Suitable for high-value local transfers

Notes

  • beneficiaryName, beneficiaryAddress, and remarks support only alphanumeric characters, spaces, and the special characters / - ? : ( ) . , ' +
  • If the beneficiary bank is not a MEPS+ participant, provide the intermediary bank details
  • For orders paid out via POBO, the response returns poboAccountNo / poboAccountName. When you call the result query endpoint, we recommend passing accountNumber=poboAccountNo to explicitly specify the POBO payout account. If accountNumber is not passed, the system automatically matches the corresponding POBO payout account based on referenceNo.

Authorization

bearerAuth
headerAuthorizationBearer <token>

The access_token obtained from POST /oauth2/token. Header format: Authorization: Bearer {accessToken}.

Header Parameters

X-Channel-Provider*string

Provider identifier, such as GLDB

Idempotency-Key*string

Unique request identifier used to prevent duplicate operations (UUID recommended). Valid for 24 hours. Each transfer must use a unique key. Never reuse the same key for different transactions. A resubmission with the same key within the validity period is rejected. For the rules, see the Payment product guide

Request Body

application/json
  1. body
referenceNo*string

Request reference number, the unique request identifier. Length 32

fromAccount*string

Payer account number, the debit account. Length 32

fromAccountName?string

Payer name. Length 128

beneficiaryAccount*string

Beneficiary account number, the credit account. Length 32

beneficiaryName*string

Beneficiary name. Length 65. Supports only alphanumeric characters, spaces, and the special characters / - ? : ( ) . , ' +

beneficiaryAddress*string

Beneficiary address. Length 70. Supports only alphanumeric characters, spaces, and the special characters / - ? : ( ) . , ' +

beneficiaryCountryCode*string

Beneficiary country code, ISO 3166-1 Alpha-2. Length 10

currency*string

Currency. Only SGD is supported. Length 3

amount*string

Transaction amount, up to 2 decimal places. Length 18

beneficiaryBankCode*string

Beneficiary bank BIC code (11 characters). Length 35

beneficiaryBankName?string

Beneficiary bank name. Length 35

remarks?string

Remarks. Length 65. Supports only alphanumeric characters, spaces, and the special characters / - ? : ( ) . , ' +

purposeCode*string

Purpose of the remittance. For valid values, see purpose codes. Length 32

chargeBearer*ChargeBearer

Charge bearer.

  • SHA: Fees are shared between the payer and the beneficiary
  • OUR: The payer bears all fees
  • BEN: The beneficiary bears all fees
Value in"SHA""OUR""BEN"
intermediaryBankAddress?string

Intermediary bank address. Length 256

intermediaryBankCode?string

Intermediary bank BIC. Length 35

intermediaryBankName?string

Intermediary bank name. Length 45

autoUsePobo?boolean

Whether to automatically pay out from the linked POBO account when the debit account is a VA

Response Body

Returns the transfer acceptance result.

application/json
  1. response
code?integer

Business status code

message?string
traceId?string

Request trace ID. Provide it when you contact technical support

data?

Base fields of business data. The data object of every business response contains these fields (except fee estimation).

Example Request
curl -X POST 'https://api.test.stabofx.com/openapi/v1/payments/transfer/meps' \  -H 'X-Channel-Provider: GLDB' \  -H 'Idempotency-Key: 7f3c2c0e-5b1a-4f6e-9d2a-0a1b2c3d4e5f' \  -H 'Content-Type: application/json' \  -d '{  "referenceNo": "STABO20231121002",  "fromAccount": "10000000001",  "beneficiaryAccount": "10000000004",  "beneficiaryName": "Example Company",  "beneficiaryAddress": "1 Example Road, Singapore 000000",  "beneficiaryCountryCode": "SG",  "currency": "SGD",  "amount": "100.00",  "beneficiaryBankCode": "EXMPSGS0XXX",  "beneficiaryBankName": "EXAMPLE BANK LTD",  "purposeCode": "BEXP",  "chargeBearer": "SHA"}'
Example Response
{  "code": 200,  "message": "OK",  "traceId": "0dbae35a-8fcc-4e6e-914e-11e1331f6439",  "data": {    "providerStatusCode": "000000",    "providerMessage": "ok",    "providerRequestSerialNo": "795883203712778240",    "providerResponseSerialNo": "785957885476737024",    "providerTimestamp": "2023-05-17 21:03:48",    "channelSerialNo": "947123626360885248",    "status": "SUCCESS",    "coreSerialNo": "PI243300Y77KGCWQ",    "estimatedFee": "20",    "estimatedFeeCurrency": "SGD",    "poboAccountNo": "10000000003",    "poboAccountName": "EXAMPLE PTE. LTD."  }}