NAV
json python shell java

Version v3.0.0.0

中文版

Welcome the API document for NextPls!

Fueled by a fundamental belief that having access to financial services creates opportunity, Nextpls is committed to democratizing financial services and empowering people and businesses to join and thrive in the global economy. Since 2017 we've been driven by a simple goal - to build a digital network connecting people and business in all corners of the globe, always striving to create opportunities for our clients. No exceptions.

We suggest using SDK to start first (Example in Java):

  <dependency>
      <groupId>com.nextpls</groupId>
      <artifactId>sdk</artifactId>
      <version>1.3.20</version>
  </dependency>

  <dependency>
      <groupId>com.nextpls</groupId>
      <artifactId>sdk</artifactId>
      <version>1.3.20</version>
  </dependency>

/**
  <dependency>
      <groupId>com.nextpls</groupId>
      <artifactId>sdk</artifactId>
      <version>1.3.20</version>
  </dependency>
*/
  我们可以提供pyhton的sdk代码

Introduction

Before you start developing NextPls products and solutions, familiarize yourself with our latest documentation

including developer guides, API reference, code samples, and more.

2.1.Integration process

This guide walks you through the whole integration process. Follow these steps to complete the integration and mark progress on the steps if necessary.

1.Set Up

1)Complete and submit the Merchant payout country list

2)NextPls will provide relevant parameter documents and merchant information for develop by email;

2.Integrate in sandbox

1)Implement system development and debugging;

2)Test API, Conduct the end-to-end test;

3)Complete the test cases provided by NextPls and send the results by email to payout_support@wotransfer.com;

3.Go live and Conduct pilot testing

1)NextPls will prepare live account after complete acceptance testing;

2)Conduct pilot testing and observe the results;

3)Complete pilot testing and send a go alive email to NextPls (3 days in advance, email: payout_support@wotransfer.com);

4.Start your business

1)Once your application has been activated for business, notify Nextpls so that we can monitor your system's behavior and check for any unpredictable errors that might affect your business.

2.2.System interaction

The following figure shows the system interaction between merchants and the NextPls

avatar

The following figure shows the flow of NextPls order status

avatar

2.3.Security Rule

2.3.1.Prepare work

2.3.1.1.Generating a CEK

All request body should be encrypted with AES128 algorithm before sending to the NextPls server. So it needs a CEK(Content Encryption Key) which will be delivered to NextPls server as described in the Content-Code field in the http header.

Agent who wants to make a request API should generate an AES-128 key for the CEK, which is comprised of 32 bytes random digits (16 bytes for initial vectors and 16 bytes for AES key).

Sample

item ASCII_string
sKey cek_tester_remit
ivParameter initial_tester01
CEK initial_tester01cek_tester_remit

2.3.1.2.Generating a pair of keys

Agent needs to use RSA encryption algorithm to generate public and private keys, NextPls will also have a pair of public and private keys, we will exchange public keys and retain private key privacy to ensure information security;

Sample of generating a pair of keys with RSA algorithm:

import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.KeyPair;

    public static RsaKeypair getRsaKeypair() throws Exception {
        KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
        keyPairGen.initialize(1024);
        KeyPair keyPair = keyPairGen.generateKeyPair();
        RSAPublicKey publicKey = (RSAPublicKey)keyPair.getPublic();
        RSAPrivateKey privateKey = (RSAPrivateKey)keyPair.getPrivate();
        return new RsaKeypair(publicKey, privateKey);
}

2.3.2.Handling Request

avatar

2.3.2.1.Encrypting body part with the CEK

Agent who wants to make a request API should encrypt the body part with CEK before sending to the NextPls server.

When encrypting, you should use the algorithm of "AES/CBC/PKCS5Padding", then encoded of Base64.

Sample of encrypting the body (Example in Java):

  {
    "Example":"Please move to java"
  }
    Please find the example in java
/**
 *
 * @param body:加密前的body
 * @param encodingFormat: 编码格式
 * @param sKey:CEK密钥的sKey部分
 * @param ivParameter:CEK密钥的iParameter部分
 * @return 加密后的body
 * @throws Exception
 */
    public String encrypt(String body, String encodingFormat, String sKey, String ivParameter) throws Exception {
         Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
         byte[] raw = sKey.getBytes();
         SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
         IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
         cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
         byte[] encrypted = cipher.doFinal(body.getBytes(encodingFormat));
         return Base64.getEncoder().encodeToString(encrypted);//此处使用BASE64做转码。
  }

2.3.2.2.Encrypting CEK with NextPls public key

Agent who wants to make request API call MUST attach the CEK in the http header("Content-Code") as encrypted one.

Encryption algorithm used for CEK protection is RSA-1024. Finally, the result needs to be encoded of Base64.

All Agent will receive a public key from NextPls, which is used for encryption of the CEK.

Sample of CEK encrypting:

/**
 *
 * @param originalCEK:原始CEK
 * @param publicKey:公钥
 * @return 加密后的CEK
 * @throws Exception
 */
    public String rsaEncrypt(String originalCEK, PublicKey publicKey) throws Exception {
         Cipher cipher = Cipher.getInstance(ALGORITHM);
         cipher.init(Cipher.ENCRYPT_MODE, publicKey);
         byte[] sbt = originalCEK.getBytes(ENCODING);
         byte[] epByte = cipher.doFinal(sbt);
         return Base64.getEncoder().encodeToString(epByte);
  }

2.3.2.3.Generating signature

Agent who wants to make a request API call MUST attach a signature value of the encrypted body in the http header("Signature").

Signature is used for non-repudiation of the request body from an Agent.

Generate signature with sender’s private key.

Signature algorithm is Sha256WithRSA, And then also needs to be encoded of Base64.

Sample of signature:

/**
 *
 * @param plainText:需要签名的内容
 * @param privateKey:私钥
 * @return 加密后的签名
 */
    public String sign(String plainText, PrivateKey privateKey) throws Exception {
         Signature sign = Signature.getInstance("SHA256withRSA", DEFAULT_PROVIDER);
         sign.initSign(privateKey);
         sign.update(plainText.getBytes(ENCODING));
         byte[] signed = sign.sign();
         String signBase64 = Base64.getEncoder().encodeToString(signed);
         return StringUtils.deleteWhitespace(signBase64);
  }

2.3.2.4.Generating request header and body

With encrypted CEK, encrypted body and Signature values, the Authorization is partner code. Agent can generate a http header like followings; Sample

Header
Accept : application/base64
Authorization : AU1234567
Content-Code : dpcnD2YnJpCr0EIUNkz5so9rsBloBJRk/ie/awlgOV8ECoob3yB9QoAtP7LQNtOmziQOrFXueD0B62gc2f+AqCOs5D66sWQjlCWnjyqOkFjfow93CtYvGwpuoiqNArk39qvbe3lTo2g3qalg5YEe0Reohf2yHFbsYrwtgvBWQUI=
Signature : CiELHoMm9ab9FduNLWQZ15OI4O+ms8xGjJBEMyRsLRvi9cQI0QctIajwnejCrri7q0ep2zf6Fqn9DIWpF2vgsAHK3SWr2SkykxY2Sheisv1hjpxOVYgnLDcI/0KXTFSjHQWQ+JG6d8VvwrAErqY0jk9pafUj1SfxrHpUzEUWDGQ=
Body
Deo7f9su8hdo0PCCKxyjuCRVCKAotP01jgfDJd82jrLQAvEyXK+hwNMF2mLKidCERaS604yzdQ2REQ0Rja/2H87VLLmsQx7Bkbe0yah8ALIaCabwY30aG/FPsjY4Y7OhujaEAzOVRUrV21iYDL5nUg=

2.3.3.handling response

avatar

2.3.3.1.Verifying signature

To verify authenticity of NextPls server, Agent should calculate verification value from the encrypted body and compare with what received signed value described in the http header.

Sample of verifying signature:

/**
 * @param data 待验证数据体
 * @param sign 签名
 * @param publicKey 公钥
 * @return 验证签名是否正确
 */
    public boolean verify(String data, String sign, PublicKey publicKey) {
        if (data == null || sign == null) {
             return false;
         }
         try {
             Signature signetcheck = Signature.getInstance("SHA256withRSA");
             signetcheck.initVerify(publicKey);
             signetcheck.update(data.getBytes(ENCODING));
             return signetcheck.verify(Base64.getDecoder().decode(sign));
        } catch (Exception e) {
            return false;
         }
  }

2.3.3.2.CEK Decrypt

All response body is encrypted with AES128-CBC algorithm before sending from the NextPls server. So it needs to derive the CEK(Content Encryption Key) first from the Content-Code field in the http header.

CEK is composed of 32 bytes random digits (16 bytes for initial vectors and 16 bytes for AES key). It is encrypted with Agent’s public key (RSA-1024). So Agent needs to prepare its corresponding private key.

CEK can be derived from ‘Content-Code’ field in response header.

Sample of decrypting CEK:

/**
 * 私钥解密
 *
 * @param encryptText 已加密CEK
 * @param privateKey 私钥
 * @return 原CEK
 * @throws Exception
 */
    public String decryptByPrivateKey(String encryptText, PrivateKey privateKey) throws Exception {
         byte[] encryptedData = Base64.getDecoder().decode(encryptText);
         KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM);
         Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
         cipher.init(Cipher.DECRYPT_MODE, getPrivateKey());
         int inputLen = encryptedData.length;
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         int offSet = 0;
        byte[] cache;
        int i = 0;
        // 对数据分段解密
        while (inputLen - offSet > 0) {
            if (inputLen - offSet > MAX_DECRYPT_BLOCK) {
                cache = cipher.doFinal(encryptedData, offSet, MAX_DECRYPT_BLOCK);
            } else {
                cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet);
            }
            out.write(cache, 0, cache.length);
            i++;
            offSet = i * MAX_DECRYPT_BLOCK;
        }
        byte[] decryptedData = out.toByteArray();
        out.close();
        return new String(decryptedData);
    }

2.3.3.3.Decrypting body part with CEK

Agent can extract plain JSON body with the CEK derived at above.

Sample of decrypting body part with CEK:

    /**
 *
 * @param sSrc 加密报文
 * @param encodingFormat 编码方式
 * @param sKey CEK中的sKey
 * @param ivParameter CEK中的ivParameter
 * @return 解密后报文
 */
    private String decrypt(String sSrc, String encodingFormat, String sKey, String ivParameter) {
         try {
             byte[] raw = sKey.getBytes("ASCII");
             SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
             Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
             IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
             cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);

             byte[] encrypted1 = Base64.getDecoder().decode(sSrc);//先用base64解密
             byte[] original = cipher.doFinal(encrypted1);
             String originalString = new String(original, encodingFormat);
             return originalString;
        } catch (Exception ex) {
             return null;
         }
    }

Transaction

3.1.GetBalance

This method allows the partner to Get the Balance by currency.

3.1.1.HTTP Request

POST GET_BALANCE

{
    "apiName": "GET_BALANCE",
    "entity": {
        "currency": "HKD"
    }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
         "apiName": "GET_BALANCE",
         "entity": {
             "currency": "HKD"
         }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsBalanceRequestDto balanceDto = new NextPlsBalanceRequestDto();
        balanceDto.setCurrency("HKD");
        NextPlsGetBalanceRequest balanceRequest = 
                NextPlsGetBalanceRequest.build(balanceDto);
        client.execute(balanceRequest);             

    }
}

3.1.2.Request Body

Field Type Describe O/M
apiName String GET_BALANCE M
entity Object Parameter list M
currency String(3) currency M

Response Body:

{
    "apiName": "GET_BALANCE_R",
    "code": "200",
    "msg": "success",
    "entity": {
    "partnerCode": "",
    "cashAcc": [
      {
        "balance": "",
        "currency": ""
      }
    ],
    "creditAcc": [
      {
        "balance": "",
        "currency": ""
      }
    ],
    "cashFreezeAcc": [
      {
        "balance": "",
        "currency": ""
      }
    ]
  }
}

3.1.3.Response Body

Field Type Describe
apiName String GET_BALANCE_R
code String Result code
msg String Result message
entity Object Partner Code
partnerCode String 客户编号
cashAcc array cash account
balance Balance
currency Currency
creditAcc array credit account
balance Balance
currency Currency
cashFreezeAcc array cash freeze account
balance Balance
currency Currency
creditFreezeAcc array credit freeze account
balance Balance
currency Currency

3.2.GetAccountFlowRecord

Obtain account change records

3.2.1.HTTP Request

POST GET_ACCOUNT_FLOW_RECORD

{
  "apiName":"GET_ACCOUNT_FLOW_RECORD",
  "entity":{
    "currency":"HKD",
    "type":"TRANSACTION",
    "dateFrom":"2024-01-11",
    "dateTo":"2024-01-12"
  }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
        "apiName":"GET_ACCOUNT_FLOW_RECORD",
        "entity":{
        "currency":"HKD",
        "type":"TRANSACTION",
        "dateFrom":"2024-01-11",
        "dateTo":"2024-01-12"
        }
    }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
      NextPlsGetAccountFlowRecordRequestDto flow = new NextPlsGetAccountFlowRecordRequestDto();
      flow.setDateFrom("2024-01-11");
      flow.setDateTo("2024-01-12");
      NextPlsGetAccountFlowRecordRequest build = NextPlsGetAccountFlowRecordRequest.build(flow);
      NextPlsGetAccountFlowRecordResponse entity = client.execute(build).getEntity();           

    }
}

3.2.2.Request Body

Field Type Describe O/M
apiName String GET_ACCOUNT_FLOW_RECORD M
entity Object Parameter list M
currency String(3) currency O
type String(24) Transaction Type O
dateFrom String(10) Starting time M
dateTo String(10) End Time M

Response Body:

{
  "apiName":"GET_ACCOUNT_FLOW_RECORD_R",
  "code":"200",
  "msg":"111",
  "entity":{
    "cash":[
      {
        "currency":"",
        "type":"",
        "changeAmount":"",
        "balance":"",
        "createTime":""
      }
    ],
    "credit":[
      {
        "currency":"",
        "type":"",
        "changeAmount":"",
        "balance":"",
        "createTime":""
      }
    ]
  }
}

3.2.3.Response Body

Field Type Describe
apiName String GET_ACCOUNT_FLOW_RECORD_R
code String Result code
msg String Result message
entity Object Parameter list
cash array Cash flow
balance Balance after change
currency currency
changeAmount The amount of this change
type Account change type
createTime CreateTime
credit array Credit flow
balance Balance after change

3.3.GetExRate

This method allows the partner to Get the last rate and lock one hour.

3.3.1.HTTP Request

POST GET_EX_RATE

{
    "apiName": "GET_EX_RATE",
    "entity": {
        "payInCountry": "HKG",
        "payInCurrency": "HKD",
        "payOutCountry": "PHL",
        "payOutCurrency": "PHP",
        "transactionType": "C2C",
        "paymentMode":"Bank"
    }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
         "apiName": "GET_EX_RATE",
         "entity": {
             "payInCountry": "HKG",
             "payInCurrency": "HKD",
             "payOutCountry": "PHL",
             "payOutCurrency": "PHP",
             "transactionType": "C2C",
             "paymentMode":"Bank"
         }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsExRateRequestDto exRateDto = new NextPlsExRateRequestDto();
        exRateDto.setPayInCountry("HKG");
        exRateDto.setPayInCurrency("HKD");
        exRateDto.setPayOutCountry("PHL");
        exRateDto.setPayOutCurrency("PHP");
        exRateDto.setTransactionType("C2C");
        exRateDto.setPaymentMode("Bank");
        NextPlsGetExRateRequest exRateRequest = NextPlsGetExRateRequest.build(exRateDto);
        client.execute(exRateRequest);

    }
}
print("=====> 1. 获取报价...")
exRateDto = {
    "payInCountry":"SGP",
    "payInCurrency":"HKD",
    "payOutCountry":"HKG",
    "payOutCurrency":"HKD",
    "transactionType": "C2C",
    "paymentMode":"Bank"
}

rate_res = json.loads(sdk.post({
    "apiName": "GET_EX_RATE",
    "entity": exRateDto
    },url))

print("报价结果:" + str(rate_res))

3.3.2.Request Body

Field Type Describe O/M
apiName String GET_EX_RATE M
entity Object Parameter list M
payInCountry String(3) Pay In Country M
payInCurrency String(3) Pay In Currency M
payOutCountry String(3) Pay Out Country M
payOutCurrency String(3) Pay Out Currency M
transactionType String(3) Transaction Type M
paymentMode String(20) Payment Mode M

Response Body:

{
    "apiName": "GET_REMITTER_R",
    "code": "200",
    "msg": "success",
    "entity": {
        "payInCountry": "HKG",
        "payInCurrency": "HKD",
        "payOutCountry": "PHL",
        "payOutCurrency": "PHP",
        "exRate": "7.369781",
        "transactionType": "C2C",
        "paymentMode":"Bank"
    }
}

3.3.3.Response Body

Field Type Describe
apiName String GET_EX_RATE_R
code String Result code
msg String Result message
entity Object Parameter list
payInCountry String Pay In Country
payInCurrency String Pay In Currency
payOutCountry String Pay Out Country
payOutCurrency String Pay Out Currency
exRate String The exchange rate
transactionType String Transaction Type
paymentMode String Payment Mode

3.4.DoTransactionPre

This method allows the partner to preview the transfer details and keep the rate for some hours.

3.4.1.HTTP Request

POST DO_TRANSACTION_PRE

Request Body:

{
    "apiName": "DO_TRANSACTION_PRE",
    "entity": {
        "clientTxnNo": "1000",
        "transactionType": "C2C",
        "payInCountry": "HKG",
        "payInCurrency": "HKD",
        "payInAmount": "13.57",
        "payOutCountry": "PHL",
        "payOutCurrency": "PHP",
        "payOutAmount": "100",
        "transferCurrency": "PHP",
        "paymentMode": "Bank"
    }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
         "apiName": "DO_TRANSACTION_PRE",
         "entity": {
             "clientTxnNo": "1000",
             "transactionType": "C2C",
             "payInCountry": "HKG",
             "payInCurrency": "HKD",
             "payInAmount": "13.57",
             "payOutCountry": "PHL",
             "payOutCurrency": "PHP",
             "payOutAmount": "100",
             "transferCurrency": "PHP",
             "paymentMode": "Bank"
         }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsTransactionRequestDto preRequestDto = new NextPlsTransactionRequestDto();
        preRequestDto.setClientTxnNo("1000");
        preRequestDto.setTransactionType("C2C");
        preRequestDto.setPayInCountry("HKG");
        preRequestDto.setPayInCurrency("HKD");
        preRequestDto.setPayInAmount("13.57");
        preRequestDto.setPayOutCountry("PHL");
        preRequestDto.setPayOutCurrency("PHP");
        preRequestDto.setPayOutAmount("100");
        preRequestDto.setTransferCurrency("PHP");
        preRequestDto.setPaymentMode("Bank");
        NextPlsDoTransactionPreRequest preRequest = 
                NextPlsDoTransactionPreRequest.build(preRequestDto);
        client.execute(preRequest);

    }
}
print("=====> 2. 开始预下单...")
    txnPreDto = {
        "clientTxnNo":"1651854777757204546",
        "payInAmount":"0.36",
        "payInCountry":"SGP",
        "payInCurrency":"HKD",
        "payOutCountry":"HKG",
        "payOutCurrency":"HKD",
        "paymentMode":"Bank",
        "transactionType":"B2C",
        "transferCurrency":"HKD"
    }

    pre_res = json.loads(sdk.post({
        "apiName": "DO_TRANSACTION_PRE",
        "entity": txnPreDto
        },url))

print("预下单结果:" + str(pre_res))

3.4.2.Request Body

Field Type Describe
apiName String DO_TRANSACTION_PRE
entity Object Parameter list
clientTxnNo String(20) Unique code for partner's txn
transactionType String(3) transactionType
payInCountry String(3) Pay In Country Code,ISO -3 Country Code;For Example: SGP for Singapore
payInCurrency String(3) Pay In Currency, currency in ISO 4217 format
payInAmount String(18) Pay In Amount
payOutCountry String(3) Pay Out Country Code,ISO -3 Country Code;For Example: PHL for Philippines
payOutCurrency String(3) Pay Out Currency,currency in ISO 4217 format
payOutAmount String(18) Pay Out Currency
transferCurrency String(3) Transfer Currency(The Fixed End, it must be payInCurrency or payOutCurrency)
paymentMode String(20) Payment Mode

Refer to country / region&currency code

Response Body:

{
    "apiName": "DO_TRANSACTION_PRE_R",
    "code": "200",
    "msg": "success",
    "entity": {
        "txnNo": "IU201G0279816077",
        "transactionType": "C2C",
        "clientTxnNo": "1000", 
        "payInAmount": "13.57",
        "payInCurrency": "HKD",
        "payOutCurrency": "PHP",
        "payOutAmount": "100",
        "transferCurrency": "HKD",
        "paymentMode": "Bank",
        "exchangeRate": "7.369781",
        "commission": "0.1000",
        "commissionCurrency": "HKD",
        "totalAmount": "13.67"
    }
}

3.4.3.Response Body

Field Type Describe
apiName String DO_TRANSACTION_PRE_R
code String Result code
msg String Result message
entity Object Parameter list
txnNo String Unique code for NextPls txn
clientTxnNo String Unique code for partner's txn
transactionType String transaction type
payInCurrency String Pay In Currency
payInAmount String Pay In Amount
payOutCurrency String Pay Out Currency
payOutAmount String Pay Out Amount
transferCurrency String Transfer Currency
paymentMode String payment mode
exchangeRate String Exchange Rate
commission String commission
commissionCurrency String currency of commission
totalAmount String Total Amount to pay

3.5.DoTransaction

This method allows the partner to initiate the transfer.

3.5.1.HTTP Request

POST DO_TRANSACTION

Request Body:

{
    "apiName": "DO_TRANSACTION",
    "entity": {
        "txnNo": "IU201G0279816077",
        "clientTxnNo": "1000",
        "remitterNo": "",
        "beneficiaryNo": "",
        "purposeCode": "EDUCATION",

        "remitterFirstName": "Remitter_First_Name",
        "remitterMiddleName": "",
        "remitterLastName": "Remitter_Last_Name",
        "remitterFirstLocalName": "Remitter_First_Local_Name",
        "remitterMiddleLocalName": "",
        "remitterLastLocalName": "Remitter_Middle_Last_Name",
        "remitterMobile": "12345678910",
        "remitterGender": "M",
        "remitterBirthdate": "01/01/1994",
        "remitterEmail": "nextPls@nextPls.com",
        "remitterAddress1": "Italy",
        "remitterAddress2": "",
        "remitterAddress3": "",
        "remitterPostalCode": "",
        "remitterOccupation": "",
        "remitterIdType": "PASSPORT",
        "remitterIdNumber": "PS256454165",
        "remitterIdDesc": "",
        "remitterIdIssueDate": "01/01/1994",
        "remitterIdExpDate": "01/01/1994",
        "remitterNationality": "HKG",
        "remitterAccountNumber": "",
        "remitterCompanyName": "",
        "remitterCompanyRegistrationNumber": "",
        "remitterDateOfIncorporation": "01/01/1994",
        "remitterCompanyRegistrationCountry": "",
        "sourceOfIncome": "SALARY",

        "beneficiaryFirstName": "Beneficiary_First_Name",
        "beneficiaryMiddleName": "",
        "beneficiaryLastName": "Beneficiary_Last_Name",
        "beneficiaryFirstLocalName": "Beneficiary_First_Local_Name",
        "beneficiaryMiddleLocalName": "",
        "beneficiaryLastLocalName": "Beneficiary_Last_Local_Name",
        "beneficiaryMobile": "12345678910",
        "beneficiaryGender": "",
        "beneficiaryBirthdate": "",
        "beneficiaryEmail": "",
        "beneficiaryAddress1": "Philippines",
        "beneficiaryAddress2": "",
        "beneficiaryAddress3": "",
        "beneficiaryPostalCode": "",
        "beneficiaryOccupation": "",
        "beneficiaryIdType": "PASSPORT",
        "beneficiaryIdNumber": "",
        "beneficiaryIdDesc": "",
        "beneficiaryIdIssueDate": "",
        "beneficiaryIdExpDate": "",
        "beneficiaryNationality": "HKG",
        "beneficiaryRelationship": "BROTHER",
        "beneficiaryBankCode": "11003544",
        "beneficiaryBankAccountNumber": "4555556564564",
        "beneficiaryBankAccountName": "Benificiary_BankAccountName",
        "beneficiaryAccount": "",
        "beneficiaryBankAddress": "",
        "beneficiaryMsg": "",
        "beneficiaryCompanyName": "",
        "beneficiaryCompanyRegistrationNumber": "",
        "beneficiaryDateOfIncorporation": "01/01/1994",
        "beneficiaryCompanyRegistrationCountry": ""
    }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
         "apiName": "DO_TRANSACTION",
         "entity": {
                       "txnNo": "IU201G0279816077",
                       "clientTxnNo": "1000",
                       "remitterNo": "JJ201A1131599873",
                       "beneficiaryNo": "RP122141",
                       "purposeCode": "EDUCATION"
                   }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsTransactionRequestDto txnRequestDto = new NextPlsTransactionRequestDto();
        txnRequestDto.setTxnNo("IU201G0279816077");
        txnRequestDto.setClientTxnNo("1000");
        txnRequestDto.setBeneficiaryNo("XD201G0589941750");
        txnRequestDto.setRemitterNo("JJ201A1131599873");
        txnRequestDto.setPurposeCode("EDUCATION");
        NextPlsDoTransactionRequest transactionAddRequest = 
                NextPlsDoTransactionRequest.build(txnRequestDto);
        client.execute(transactionAddRequest);

    }
}
        txnRequestDto = {
            "txnNo": pre_res['entity']['txnNo'],
            "clientTxnNo": pre_res['entity']['clientTxnNo'],
                    "remitterLastName":"Pan",
                "beneficiaryLastName":"Pan",
                "remitterEmail":"weipei.pan@yeepay.com",
                "beneficiaryIdNumber":"XD201G0589941750",
                "beneficiaryRoutingCode":"018",
                "remitterNationality":"HKG",
                "beneficiaryRelationship":"SELF",
                "beneficiaryBankCode":"19910004",
                "remitterFirstName":"Wilson",
                "beneficiaryFirstName":"Wilson",
                "remitterAddress1":"guangzhou",
                "beneficiaryAddress1":"guangzhou",
                "beneficiaryBankAccountNumber":"123456",
                "beneficiaryEmail":"weipei.pan@yeepay.com",
                "sourceOfIncome":"SALARY"
        }
        # print(str(txnRequestDto))
        txn_res = json.loads(sdk.post({
        "apiName": "DO_TRANSACTION",
        "entity": txnRequestDto
        },url))
        print("返回结果:" + str(txn_res))

3.5.2.Request Body

Field Type Describe O/M
apiName String DO_TRANSACTION M
entity Object Parameter list M
txnNo String(20) Unique code for NextPls txn M
clientTxnNo String(20) Unique code for partner txn M
remitterNo String(20) Unique code for NextPls remitter C
beneficiaryNo String(20) Unique code for NextPls beneficiary C
purposeCode String(16) Purpose C
remitterFirstName String(50) Remitter first name:if transactionType is "C2B/C2C", its mandatory M
remitterMiddleName String(50) Remitter middle name O
remitterLastName String(50) Remitter last name:if transactionType is "C2B/C2C", its mandatory M
remitterFirstLocalName String(50) Remitter first name:f the personal certificate is issued in mainland China/country/region, including Chinese characters; M
remitterMiddleLocalName String(50) Remitter middle name O
remitterLastLocalName String(50) Remitter last name:f the personal certificate is issued in mainland China/country/region, including Chinese characters; M
remitterMobile String(20) Remitter mobile number M
remitterEmail String(50) The email id of remitter O
remitterAddress1 String(35) Remitter Address(detailed address)-English/pinyi M
remitterAddress2 String(35) Remitter Address(city)-English/pinyi O
remitterAddress3 String(50) Remitter Address(province/state)-English/pinyi Required when Payoutcountry is MXN/BRA, the value needs to be passed according to the Source_State Code List O
remitterPostalCode String(16) Remitter PostalCode C
remitterOccupation String(64) Remitter Occupation C
remitterIdType String(16) Remitter IdType M
remitterIdNumber String(20) ID number M
remitterIdDesc String(30) description for id C
remitterIdIssueDate String(10) ID issue date (MM/DD/YYYY):Applicable when the transaction type is "C2B/C2C" O
remitterIdExpDate String(10) ID expiry date (MM/DD/YYYY):It is the registration date of the platform when the payout country is CHN (yyyy-MM-dd HH:mm:ss);Other payout countries are ID expiry date (MM/DD/YYYY) O
remitterBirthdate String(10) Remitter date of birth (MM/DD/YYYY):Applicable when the transaction type is "C2B/C2C O
remitterCountryOfBirth String(10) Birth country of Remitter: if transactionType is“B2B/B2C”, its mandatory (English/number required) O
remitterGender String(1) Remitter gender. M=Male, F=Female O
remitterNationality String(3) Remitter Nationality(3 characters Country ISO code For Example: PHL for Philippine) M
remitterCompanyName String(100) Remitte company name:if transactionType is“B2B/B2C”, its mandatory C
remitterCompanyRegistrationNumber String(50) Remitter company registration number:if transactionType is"B2B/B2C", its mandatory (English/number required) C
remitterDateOfIncorporation String(10) Remitter date of incorporation(MM/DD/YYYY):if transactionType is“B2B/B2C”, its mandatory C
remitterCompanyRegistrationCountry String(3) Remitter company registration country:if transactionType is“B2B/B2C”, its mandatory (English/number required) C
remitterAccountNumber String(30) Remitter account number O
sourceOfIncome String(16) Remitter source of income M
beneficiaryFirstName String(50) Beneficiary First Name:if transactionType is "C2C/B2C", its mandatory M
beneficiaryMiddleName String(50) Beneficiary Middle Name O
beneficiaryLastName String(50) Beneficiary Last Name:if transactionType is "C2C/B2C", its mandatory M
beneficiaryFirstLocalName String(50) Beneficiary First Name:if the personal certificate is issued in mainland China/country/region, including Chinese characters; O
beneficiaryMiddleLocalName String(50) Beneficiary Middle Name O
beneficiaryLastLocalName String(50) Beneficiary Last Name:if the personal certificate is issued in mainland China/country/region, including Chinese characters; O
beneficiaryMobile String(20) Mobile phone Number of Beneficiary C
beneficiaryEmail String(50) Email of Beneficiary O
beneficiaryAddress1 String(35) Beneficiary Address(detailed address) C
beneficiaryAddress2 String(35) Beneficiary Address(city) O
beneficiaryAddress3 String(35) Beneficiary Address(province/state) 1)For the US State, the value is attached List of US States; 2) The payee is the province/state (State) of Brazil/Mexico. The value Destination_State Code List must be passed O
beneficiaryPostalCode String(16) Beneficiary PostalCode: if payout country is USA ,its mandatory C
beneficiaryOccupation String(64) Beneficiary Occupation C
beneficiaryIdType String(16) Type of Beneficiary Id Proof O
beneficiaryIdNumber String(20) Beneficiary ID Number O
beneficiaryIdDesc String(20) Description of Beneficiary ID C
beneficiaryIdIssueDate String(10) Issue date(MM/DD/YYYY) O
beneficiaryIdExpDate String(10) Expiry date(MM/DD/YYYY) O
beneficiaryBirthdate String(10) Beneficiary BirthDate(MM/DD/YYYY) O
beneficiaryCountryOfBirth String(3) Birth country of Beneficiary O
beneficiaryGender String(1) Gender of Beneficiary O
beneficiaryNationality String(3) Nationality of Beneficiary(3 Character Country ISO Code) M
beneficiaryRelationship String(16) Relationship with the remitter M
beneficiaryBankCode String(20) Bank code for Beneficiary:Internal bank code that can be found by the List of supported banks in target countries; C
beneficiaryBankName String(64) Bank name for Beneficiary C
beneficiaryBankAccountNumber String(30) Bank Account Number of Beneficiary:It is mandatory only for the bank card number C
beneficiaryBankAccountName String(35) Bank Account name of Beneficiary C
beneficiaryAccount String(35) Account of Beneficiary C
beneficiaryAccountType String(35) Account Type of Beneficiary:Example: Checking/ Savings is required for US, ACC/PAN is required for Vietnam, South America is required C
beneficiaryBankAddress String(35) Beneficiary Bank Address O
beneficiaryIban String(35) Beneficiary IBAN:Required when the pay out country (region) is a EUR Zore or UK use by IBAN;IBAN only support the payout currency for EUR C
beneficiarySwiftCode String(16) Beneficiary Swift Code:Optional according to the standards followed by different banks C
beneficiaryRoutingCode String(16) Routing code Beneficiary Routing Code: HKG-3 digit、GBR -sort code、 USA-ABA、 AUS-BSB、JPN-BranchNumber+Branch(Format example 518-堂島) C
beneficiaryMsg String(120) Beneficiary Msg C
beneficiaryCompanyName String(100) Beneficiary company name:if transactionType is "C2B/B2B", its mandatory C
beneficiaryCompanyRegistrationNumber String(50) Beneficiary company registration number:if transactionType is "C2B/B2B", its mandatory C
beneficiaryDateOfIncorporation String(10) Bneficiary date of incorporation(MM/DD/YYYY):if transactionType is "C2B/B2B", its mandatory C
beneficiaryCompanyRegistrationCountry String(3) Beneficiary company registration country:if transactionType is "C2B/B2B", its mandatory C
extendInfo String(2048) Extended information ,Only used for the collection of extended information. In JSON format. C

Response Body:

{
    "apiName": "DO_TRANSACTION_R",
    "code": "200",
    "msg": "success",
    "entity": {
        "txnNo": "IU201G0279816077",
        "clientTxnNo": "1000",
        "status": "TRANSACTION_ING"
    }
}

3.5.3.Response Body

Field Type Describe
apiName String DO_TRANSACTION_R
code String Result code
msg String Result message
entity Object Parameter list
txnNo String Unique code for NextPls txn
clientTxnNo String Unique code for partner txn
status String Transaction status
errorMsg String Transaction error message

3.6.GetTransactionStatus

This method allows the partner to check the Transaction status.

3.6.1.HTTP Request

POST GET_TRANSACTION_STATUS

Request Body:

{
    "apiName": "GET_TRANSACTION_STATUS",
    "entity": {
        "txnNo": "IU201G0279816077",
        "clientTxnNo": "1000"
    }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
         "apiName": "GET_TRANSACTION_STATUS",
         "entity": {
             "txnNo": "IU201G0279816077",
             "clientTxnNo": "1000"
         }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsTransactionRequestDto txnRequestDto = new NextPlsTransactionRequestDto();
        txnRequestDto.setTxnNo("IU201G0279816077");
        txnRequestDto.setClientTxnNo("1000");
        NextPlsGetTxnStatusRequest txnStatusRequest = 
                    NextPlsGetTxnStatusRequest.build(txnRequestDto);
        client.execute(txnStatusRequest);

    }
}

3.6.2.Request Body

Field Type Describe O/M
apiName String GET_TRANSACTION_STATUS M
entity Object Parameter list M
txnNo String(20) Unique code for NextPls txn M
clientTxnNo String(20) Unique code for partner txn M

Response Body:

{
    "apiName": "GET_TRANSACTION_STATUS_R",
    "code": "200",
    "msg": "success",
    "entity": {
        "reference": "FRTR1001349991",
        "txnNo": "IU201G0279816077",
        "clientTxnNo": "1000",
        "status": "TRANSACTION_ING"
    }
}

3.6.3.Response Body

Field Type Describe
apiName String GET_TRANSACTION_STATUS_R
code String Result Code
msg String Result message
entity Object Parameter list
reference String Unique code for cash withdrawal
txnNo String Unique code for NextPls txn
clientTxnNo String Unique code for partner txn
status String The Transaction status
errorCode String Business error code
errorMsg String Business error message

3.7.BankAccountNumberAnalysis

Payee bank card number analysis and extraction interface:

It is only applicable to remittances to Japan. The name of the beneficiary bank is Postal Savings Bank (YUCHO-Yucho Bank). The bank number and branch number provided by the full card number analysis are transmitted, and then the 3.5.DoTransaction interface is used to place the order;

Precautions for use:

According to local regulatory requirements, the "Remittance to Japan - Postal Savings Bank of Japan Resolution Interface Usage Guide" must be followed at the same time on the front end of the remitter page when enabling;

3.7.1.HTTP Request

POST BANK_ACCOUNT_NUMBER_ANALYSIS

Request Body:

{
    "apiName":"BANK_ACCOUNT_NUMBER_ANALYSIS",
    "entity":{
        "payOutCountry":"JPY",
        "bankCode":"10121195",
        "beneficiaryBankAccountNumber":"12345-2-01234567"
    }
}
curl -X POST https://openapi.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
        "apiName":"BANK_ACCOUNT_NUMBER_ANALYSIS",
        "entity":{
            "payOutCountry":"JPY",
            "bankCode":"10121195",
            "beneficiaryBankAccountNumber":"12345-2-01234567"
         }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://openapi.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsBankAccountNumberAnalysisRequestDto obj = new NextPlsBankAccountNumberAnalysisRequestDto();
        obj.setBeneficiaryFullBankAccountNumber("12050-23274681");
        NextPlsBankAccountNumberAnalysisRequest nextPlsBankAccountNumberAnalysisRequest = NextPlsBankAccountNumberAnalysisRequest.build(obj);
        client.execute(nextPlsBankAccountNumberAnalysisRequest);

    }
}

3.7.2.Request Body

Field Type Describe O/M
apiName String BANK_ACCOUNT_NUMBER_ANALYSIS M
entity Object Parameter list M
payOutCountry String(20) payOutCountry Default:JPN O
beneficiaryBankCode String(20) Beneficiary BankCode,Default:10121195 JAPAN POST BANK O
beneficiaryFullBankAccountNumber String(30) Full card number of the beneficiary bank: Format requirements ["5 digits"-"5~8 digits"] or ["5 digits"-"1 digit"-"5~8 digits"] M

Response Body:

{
  "apiName": "BANK_ACCOUNT_NUMBER_ANALYSIS_R",
  "code": "200",
  "msg": "success",
  "entity": {
    "beneficiaryFullBankAccountNumber": "12345-2-01234567",
    "beneficiaryBranchCode": "238",
    "beneficiaryBankAccountNumber": "0123456"
  }
}

Response Body

Field Type Describe
apiName String BANK_ACCOUNT_NUMBER_ANALYSIS_R
code String Result code
msg String Result message
entity Object Parameter list
beneficiaryFullBankAccountNumber String Full card number of the beneficiary bank
beneficiaryBranchCode String Parsed 3-digit branch number
beneficiaryBankAccountNumber String Parsed 7-digit mouth number

3.8.AddAttachment

Add Attachment: Add an attachment to a transaction

Conditions of use: Upload and provide the transaction materials based on the compliance requirements of the target country ; supported attachment types for uploading: image type (such as jpg/png), file type (such as doc/docx/pdf);

3.8.1.HTTP Request

POST ADD_ATTACHMENT

Request Body:

{
    "apiName":"ADD_ATTACHMENT",
    "entity":{
        "txnNo":"GL24AP0897532823",
        "clientTxnNo":"1111",
        "fileType":"identity",
        "fileName":"test.jpg",
        "note":"test"
    }
}
curl --location --request POST 'https://staging.nextpls.com/v1/upload/file' \
          --H 'Authorization: test_client' \
          --H "Content-Type: multipart/form-data" \
          --form 'file=@"/C:/Users/Pictures/1.png"' \
          --form 'txnNo="GL24AP0897532823"' \
          --form 'note="123321"' \
          --form 'fileType="identity"' \
          --form 'fileName="1232122323"' \
          --form 'clientTxnNo="11111"''
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "https://staging.nextpls.com/v1/upload/file", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
      File file = new File(path);
      MultipartFile multipartFile = convertToMultipartFile(file);
      byte[] fileBytes = multipartFile.getBytes();
      String base64String = Base64.getEncoder().encodeToString(fileBytes);
      NextPlsAddAttachmentDto nextPlsAddAttachmentDto = new NextPlsAddAttachmentDto();
      nextPlsAddAttachmentDto.setTxnNo("GL24AP0897532823");
      nextPlsAddAttachmentDto.setClientTxnNo("1729819226228");
      nextPlsAddAttachmentDto.setFileName("111");
      nextPlsAddAttachmentDto.setFileType("identity");
      nextPlsAddAttachmentDto.setNote("test");
      nextPlsAddAttachmentDto.setFileBase64(base64String);
      NextPlsAddAttachmentRequest build = NextPlsAddAttachmentRequest.build(nextPlsAddAttachmentDto);
      NextPlsBaseResponse<NextPlsAddAttachmentResponse> nextPlsAddAttachmentResponseNextPlsBaseResponse = CLIENT.uploadExecute(build);

    }
}

3.8.2.1.Request Body (NON-SDK)

param type Describe O/M
tnxNo String(20) transaction id( either transcation id or client transaction id is needed) C
clientTxnNo String(20) client transaction id (either transcation id or client transaction id is needed) C
fileName String(30) name of the file M
fileType String(30) file type M
file File file M
note String note O

3.8.2.2.Request Body(SDK)

param type Describe O/M
apiName String ADD_ATTACHMENT M
entity Object 客户方请求参数 M
tnxNo String(20) txnNo C
clientTxnNo String(20) clientTxnNo C
fileName String(30) fileName M
fileType String(30) file type M
fileBase64 String fileBase64 M
note String note O

Response Body:

{
  "apiName": "ADD_ATTACHMENT_R",
  "code": "200",
  "entity": {
    "txnNo": "BW24B60350141153",
    "clientTxnNo": "1730892482200",
    "fileName": "testHttp",
    "fileType": "payment-for-studying-abroad",
    "note": "test httpapi"
  },
  "msg": "success"
}

Response Body

param type Describe
apiName String ADD_ATTACHMENT_R
code String code
msg String msg
entity Object nextPls return
txnNo String txnNo
clientTxnNo String clientTxnNo
fileName String fileName
fileType String fileType
note String note

3.9.downloadProof

Remittance proof download interface

Download the order remittance voucher for successful transaction

3.9.1.HTTP Request

POST DOWNLOAD_PROOF

Request Body:

{
    "apiName":"DOWNLOAD_PROOF",
    "entity":{
        "txnNo":"XO253S1906612607",
        "type":"NORMAL"
    }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
        "apiName":"DOWNLOAD_PROOF",
        "entity":{
            "txnNo":"XO253S1906612607",
            "type":"NORMAL"
      }
     }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
        NextPlsDownloadProofRequestDto nextPlsDownloadProofRequestDto = new NextPlsDownloadProofRequestDto();
        nextPlsDownloadProofRequestDto.setTxnNo("XO253S1906612607");
        nextPlsDownloadProofRequestDto.setType("STUDY");
        NextPlsDownloadProofRequest build = NextPlsDownloadProofRequest.build(nextPlsDownloadProofRequestDto);
        NextPlsBaseResponse<NextPlsDownloadProofResponse> execute = CLIENT.execute(build);
    }
}

3.9.2.Request Body

param type Describe O/M
apiName String DOWNLOAD_PROOF M
entity Object entity M
txnNo String(32) txnNo M
type String(16) When transaction is C2B,type is STUDY and all others are NORMAL M

Response Body:

{
  "apiName": "DOWNLOAD_PROOF_R",
  "code": "200",
  "msg": "success",
  "entity": {
    "txnNo": "XO253S1906612607",
    "type": "NORMAL",
    "url": "https://mt-prod-bucket.oss-cn-hangzhou.aliyuncs.com/TF253Q0633432158-receipt.pdf?Expires=1742974523&OSSAccessKeyId=LTAI5tQKmrt6GF1QGEEA5xyn&Signature=5%2BlBYtMtn5HrUzphqD3aQQXGmw8%3D"
  }
}

Response Body

param type Describe
apiName String DOWNLOAD_PROOF_R
code String code
msg String msg
entity Object entity
txnNo String txnNo
type String type
url String Remittance link (valid for 1 hour, need to re-download after expiration)

BASIC INFO

4.1.Country&Currency Code

Obtain the country code corresponding to the specified country and the currency of the receiving target

three letters Country or region (ISO English name) customary name Target currency
AND Andorra 安道尔 EUR
AUS Australia 澳洲 AUD
BEL Belgium 比利时 EUR
BRA Brazil 巴西 BRL
CAN Canada 加拿大 CAD
CHE Switzerland 瑞士 EUR
CYP Cyprus 塞浦路斯 EUR
CZE Czech Republic 捷克 EUR
DEU Germany 德国 EUR
DNK Denmark 丹麦 EUR
EST Estonia 爱沙尼亚 EUR
ESP Spain 西班牙 EUR
FIN Finland 芬兰 EUR
FRA France 法国 EUR
GRC Greece 希腊 EUR
HKG Hong Kong 香港 HKG
HRV Croatia 克罗地亚 EUR
IDN Indonesia 印尼 IDR
IRL Ireland 爱尔兰 EUR
IND India 印度 INR
ITA Italy 意大利 EUR
JPN Japan 日本 JPY
KHM Cambodia 柬埔寨 KHR
LIE Liechtenstein 列支敦士登 EUR
LKA Sri Lanka 斯里兰卡 LKR
LTU Lithuania 立陶宛 EUR
LUX Luxembourg 卢森堡 EUR
LVA Latvia 拉脱维亚 EUR
MAF Saint Martin (France) 法属圣马丁 EUR
MEX Mexico 墨西哥 MXN
MYS Malaysia 马来西亚 MYR
NLD Netherlands 荷兰 EUR
NOR Norway 挪威 EUR
NPL Nepal 尼泊尔 NPR
PHL The Philippines 菲律宾 PHP
PAK Pakistan 巴基斯坦 PKR
POL Poland 波兰 EUR
ROU Romania 罗马尼亚 EUR
SWE Sweden 瑞典 EUR
SGP Singapore 新加坡 SGD
SVN Slovenia 斯洛文尼亚 EUR
SVK Slovakia 斯洛伐克 EUR
SMR San Marino 圣马力诺 EUR
THA Thailand 泰国 THB
USA United States of America (USA) 美国 USD
VAT Vatican City (The Holy See) 梵蒂冈 EUR
VNM Vietnam 越南 VND
CHN 中国 内地 中国大陆 CNH
GBR Great Britain (United Kingdom; England) 英国 EUR/GBP
NZL New Zealand 新西兰 NZD
KOR South Korea 韩国 KRW

4.2.Payment mode

Code Name Description
Bank Bank Account DoTransactionPre or BankList is to beneficiary's bank account;
Wallet MobileWallet DoTransactionPre or BankList is to beneficiary's e-wallet;
Cash Cash Pick Up DoTransactionPre or BankList is to beneficiary's cash;
ACCT Bpay/Bill payment DoTransactionPre or BankList is to beneficiary's bank account;

4.3.Transaction Type

Mode Description
C2C DoTransactionPre or DoTransaction is from an individual end user to an individual end user
C2B DoTransactionPre or DoTransaction is from an individual end user to a business
B2C DoTransactionPre or DoTransaction is from a business to an individual end user
B2B DoTransactionPre or DoTransaction is from a business to a business

4.4.Transaction Status

Code Status_Code Status_Description_EN
INIT 订单初始化 Initialize order
HOLD 订单锁定 Order Processing Lock
TRANSACTION_SUCCESS 订单已经成功处理完毕 The order has been successfully processed(final status)
TRANSACTION_CLOSED 订单被强制关闭 The order was forcibly closed(final status)
INVALID 订单无效 The order is invalid due to abnormal order parameters and other reasons
TRANSACTION_APPLY 交易已申请 After completing the pre-validation and successfully requesting the channel party
TRANSACTION_SUBMITTED 交易已受理 The order has been submitted to channel clearing and settlement
TRANSACTION_AVAILABLE 交易已可提款 In the CASH cash-to-account method, the transaction processing is successful and the status of waiting for the withdrawal of the other party
TRANSACTION_CHECK 订单复核 Manual review of suspicious duplicate orders, abnormal risk control, etc.
TRANSACTION_PROCESSING 汇款处理中(人工介入) Order is in manual processing stage
TRANSACTION_CANCELING 交易取消处理中(人工介入) The order is in the process of being canceled/refunded
TRANSACTION_REFUND 交易退款 Nextpls refund funds to merchant balance, final result status(final status)
TRANSACTION_FAILED 交易失败 Failure to place an order with the channel party and other failures when the system automatically processes it, and the final result status(final status)

4.5.Parameter Identification

Definition of abbreviated values found in the documentation.

Parameter Type Description
M string value for this field is required
O string value for this field is optional
C string The requirement for this field is conditional based on other field values

Errors

5.1.HTTP Error Codes

These are error codes that will be returned in the body of API responses

Error Code Description
200 Request Success
500 Request Fail
10000 The system is busy, please try again later
10006 No this Method
10007 Invalid Signature
10010 Missing Parameters
10011 Wrong Parameters
10012 Interface is not open
10015 Unauthorized Request
10101 Fee amount query error
10102 The rate query failed
10103 Please get the rate first
10104 The target country error or unsupported
10105 The source country error or unsupported
10106 The target currency error or unsupported
10107 The source currency error or unsupported
20010 The remitter add failed
20011 The clientRemitterNo already exists
20013 The remitter query failed
20014 The remitter update failed
20050 The beneficiary add failed
20051 The clientBeneficiaryNo already exists
21052 The beneficiary detail doesn't exist
20053 The beneficiary query failed
20054 The beneficiary update failed
20056 Invaid Account Number
30001 The clientTxnNo already exists
30002 The transaction query failed
30003 The transaction create failed
30004 The transaction amount is empty
30005 The amount received and remitted does not match
30006 The transaction had time out
30007 The transaction has been cancelled
30008 The transaction cancellation failed
30009 The transaction doesn't exist
30010 The transaction status query failed
30011 The token of rate doesn't exist or time out
30012 The target amount error
30013 This payment mode unsupported
30014 Suspected duplicate transaction
30015 It is not supported that source and settlement currency are different
50000 High risk interception
50011 The amount exceeds the single limit
50012 The amount exceeds the daily limit
50013 The amount exceeds the monthly limit
88001 No account opened in this currency
88002 Insufficient balance of account/credit

5.2.Business Error Codes

Error Code Error Description
1000 Sender has insufficient funds
1001 Interface suspension
1002 The source currency error or unsupported
1003 The source amount error or unsupported
1004 Payout amount should be greater than minium amount
1005 Transaction amount above limit
1006 Transaction exceeds the lock-up time
1007 Beneficiary Bank unsupported/unable to locate account;
1008 System processing Failure
1009 Transaction is duplicate
1010 Requesting transactions too frequently
1011 Transaction is cancelled
1012 Mandatory information is missing
1013 Field type is incorrect
1014 Field length is incorrect
1015 Sender nationality empty
1016 Sender Id type empty
1017 Sender Id No empty
1018 Sender birth date is empty
1019 Sender address is empty
1020 Beneficiary Id number empty
1021 Beneficiary E-mail address must be filled
1022 Beneficiary account number is empty
1023 Bank code error
1024 Sender name is error
1025 Sender address is error
1026 Sender Id Type is error
1027 Sender birth date is error
1028 Sender nationality error
1029 Sender remittance reason code error
1030 Sender occupation code error
1031 Sender source of Income error
1032 Beneficiary name error
1033 Beneficiary account name not match
1034 Beneficiary address is invalid
1035 Sender or Beneficiary gender error
1036 Beneficiary Id number error
1037 Beneficiary birth date is error
1038 Beneficiary nationality error
1039 Beneficiary occupation code error
1040 Beneficiary account number error
1041 Beneficiary Account verification failed
1042 Beneficiary Bank account frozen/invalid
1043 Beneficiary relationship error
1044 Beneficiary routing code error
1045 Beneficiary E-mail address error
1046 Invalid parameter
1047 Server Error.please contact our support team
1048 System is busy, please try again later
1049 Transaction was aborted due to high risk
1050 Unauthorized operation denied
1051 Record already exists
1052 Beneficiary message error
1053 Beneficiary account name format is incorrect (Attempt to add spaces after Lastname)

Appendix

6.1.List of US States

缩写 州名原名 州名中译 首府中译 首府原文
AL Alabama 亚拉巴马州 蒙哥马利 Montgomery
AK Alaska 阿拉斯加州 朱诺 Juneau
AZ Arizona 亚利桑那州 菲尼克斯 Phoenix
AR Arkansas 阿肯色州 小石城 Little Rock
CA California 加利福尼亚州 萨克拉门托 Sacramento
CO Colorado 科罗拉多州 丹佛 Denver
CT Connecticut 康涅狄格州 哈特福德 Hartford
DE Delaware 特拉华州 多佛 Dover
FL Florida 佛罗里达州 塔拉哈西 Tallahassee
GA Georgia 佐治亚州 亚特兰大 Atlanta
HI Hawaii 夏威夷州 火奴鲁鲁 Honolulu
ID Idaho 爱达荷州 博伊西 Boise
IL Illinois 伊利诺伊州 斯普林菲尔德 Springfield
IN Indiana 印第安纳州 印第安纳波利斯 Indianapolis
IA Iowa 艾奥瓦州 得梅因 Des Moines
KS Kansas 堪萨斯州 托皮卡 Topeka
KY Kentucky 肯塔基州 法兰克福 Frankfort
LA Louisiana 路易斯安那州 巴吞鲁日 Baton Rouge
ME Maine 缅因州 奥古斯塔 Augusta
MD Maryland 马里兰州 安那波利斯 Annapolis
MA Massachusetts 马萨诸塞州 波士顿 Boston
MI Michigan 密歇根州 兰辛 Lansing
MN Minnesota 明尼苏达州 圣保罗 St. Paul
MS Mississippi 密西西比州 杰克逊 Jackson
MO Missouri 密苏里州 杰斐逊城 Jefferson City
MT Montana 蒙大拿州 海伦那 Helena
NE Nebraska 内布拉斯加州 林肯市 Lincoln
NV Nevada 内华达州 卡森城 Carson City
NH New Hampshire 新罕布什尔州 康科德 Concord
NJ New Jersey 新泽西州 特伦顿 Trenton
NM New Mexico 新墨西哥州 圣菲 Santa Fe
NY New York 纽约州 奥尔巴尼 Albany
NC North Carolina 北卡罗来纳州 罗利 Raleigh
ND North Dakota 北达科他州 俾斯麦 Bismarck
OH Ohio 俄亥俄州 哥伦布 Columbus
OK Oklahoma 俄克拉何马州 俄克拉何马城 Oklahoma City
OR Oregon 俄勒冈州 塞勒姆 Salem
PA Pennsylvania 宾夕法尼亚州 哈里斯堡 Harrisburg
RI Rhode Island 罗得岛州 普罗维登斯 Providence
SC South Carolina 南卡罗来纳州 哥伦比亚 Columbia
SD South Dakota 南达科他州 皮尔 Pierre
TN Tennessee 田纳西州 纳什维尔 Nashville
TX Texas 得克萨斯州 奥斯汀 Austin
UT Utah 犹他州 盐湖城 Salt Lake City
VT Vermont 佛蒙特州 蒙彼利埃 Montpelier
VA Virginia 弗吉尼亚州 里士满 Richmond
WA Washington 华盛顿州 奥林匹亚 Olympia
WV West Virginia 西弗吉尼亚州 查尔斯顿 Charleston
WI Wisconsin 威斯康星州 麦迪逊 Madison
WY Wyoming 怀俄明州 夏延 Cheyenne

6.2.BankList of HKG for RoutingCode

BANK-EN BANK-CN BANK-ID
ABN AMRO BANK N.V. 307
Agricultural Bank of China Limited, Hong Kong Branch 中国农业银行股份有限公司香港分行 222
Airstar Bank Limited 天星银行有限公司 395
Ant Bank (Hong Kong) Limited 蚂蚁银行(香港) 有限公司 393
Australia and New Zealand Banking Corporation Limited 澳新银行 152
Banco Bilbao Vizcaya Argentaria S.A., Hong Kong Branch 西班牙对外银行 147
BANCO SANTANDER S.A. 西班牙桑坦德银行有限公司 267
BANGKOK BANK PUBLIC COMPANY LIMITED 049
"BANK J. SAFRA SARASIN LTD, HONG KONGBRANCH" 瑞士嘉盛银行 278
BANK JULIUS BAER AND CO LTD HONG KONG 瑞士宝盛银行 320
BANK OF MONTREAL 滿地可銀行 086
Bank of America N.A. 美国银行 055
Bank of China (Hong Kong) Limited 中国银行(香港)有限公司 012
Bank of Communications (Hong Kong) Ltd. 交通银行(香港)有限公司 382
Bank of Communications Co., Ltd. Hong Kong Branch 交通银行股份有限公司 香港分行 027
Bank of Dongguan Co., Ltd. 东莞银行股份有限公司 365
BANK OF INDIA 印度銀行 058
Bank of Singapore Limited 新加坡银行有限公司 272
BANK OF TAIWAN 台湾银行 201
Bank SinoPac (Hong Kong Branch) 永丰商业银行股份有限公司香港分行 241
Banque Pictet & Cie SA 364
Barclays Bank PLC 074
BDO UNIBANK, INC. 金融银行有限公司 067
BNP PARIBAS HONG KONG BRANCH 法国巴黎银行香港分行 056
CA Indosuez (Switzerland) SA 东方汇理财富管理 339
CANADIAN IMPERIAL BANK OF COMMERCE 加拿大帝国商业银行 092
CATHAY BANK 国泰银行 263
"Cathay United Bank Company, Limited, Hong Kong Branch" 國泰世華銀行香港分行 236
CHANG HWA COMMERCIAL BANK LIMITED 彰化商业银行 (香港分行) 206
CHINA BOHAI BANK CO., LTD. 渤海银行股份有限公司 361
CHINA CITIC BANK INTERNATIONAL LIMITED 中信银行(国际)有限公司 018
China Construction Bank (Asia) Corporation Limited 中国建设银行(亚洲)股份有限公司 009
"China Construction Bank Corporation, Hong KongBranch" 中国建设银行股份有限公司香港分行 221
China Development Bank Hong Kong Branch 国家开发银行香港分行 276
China Everbright Bank 中国光大银行 368
China Guangfa Bank Co., Ltd. 广发银行股份有限公司 359
China Merchants Bank Co. Ltd. Hong Kong Branch 招商银行香港分行 238
China Minsheng Banking Corp., Ltd. 中国民生银行 353
CHINA ZHESHANG BANK CO., LTD. 浙商银行股份有限公司 383
Chiyu Banking Corporation Limited 集友银行有限公司 039
Chong Hing Bank Limited 创兴银行有限公司 041
CIMB BANK BERHAD 联昌银行有限公司 374
Citibank (Hong Kong) Limited 花旗银行(香港)有限公司 250
Citibank N.A. Hong Kong 花旗银行 香港 分行 006
CMB Wing Lung Bank Limited 招商永隆銀行有限公司 020
Commonwealth Bank of Australia 澳洲联邦银行 153
COOPERATIEVE RABOBANK U.A. 荷兰合作银行 183
Credit Agricole Corporate and Investment Bank 法国东方汇理银行 005
Credit Industriel et Commercial, Hong Kong Branch 324
Credit Suisse AG Hong Kong Branch 瑞士信贷银行股份有限公司香港分行 233
CTBC BANK CO., LTD 中国信托商业银行 229
Dah Sing Bank, Limited 大新银行有限公司 040
DBS Bank (Hong Kong) Ltd. 星展银行 (香港)有限公司 016
DBS Bank Ltd, HK Branch 星展银行, 香港分行 185
Deutsche Bank AG Hong Kong Branch 德意志银行香港分行 054
DZ BANK AG DEUTSCHE ZENTRAL-GENOSSENSCHAFTSBANK, FRANKFURT AM MAIN, HONG KONG BRANCH 德國中央合作銀行香港分行 113
E.Sun Commercial Bank, Ltd. 玉山商业银行股份有限公司 243
EAST WEST BANK 华美銀行 258
EFG Bank AG Hong Kong Branch 瑞士盈丰银行 237
Erste Group Bank AG 227
Far Eastern International Bank Co Ltd. 远东国际商业银行股份有限公司 260
First Abu Dhabi Bank PJSC 277
FIRST COMMERCIAL BANK LTD HONG KONG BRANCH 第一商業銀行股份有限公司 203
Fubon Bank (Hong Kong) Limited 富邦银行(香港)有限公司 128
Fusion Bank Limited 富融银行有限公司 391
Hang Seng Bank Ltd. 恒生银行有限公司 024
HDFC BANK LIMITED 308
Hong Leong Bank Berhad Hong Kong Branch 丰隆银行香港分行 248
HUA NAN COMMERCIAL BANK LTD. (HK BRANCH) 华南商业银行香港分行 198
Hua Xia Bank Co., Limited 华夏银行股份有限公司 386
ICICI BANK LIMITED 251
INDIAN OVERSEAS BANK 050
"INDUSTRIAL AND COMMERCIAL BANK OF CHINA(ASIA) LIMITED" 中国工商银行(亚洲) 072
INDUSTRIAL AND COMMERCIAL BANK OF CHINA LIMITED 中国工商银行 214
Industrial Bank Co., Ltd., Hong Kong Branch 兴业银行香港分行 377
INDUSTRIAL BANK OF KOREA 中小企业银行 271
ING Bank N.V., Hong Kong 145
Intesa Sanpaolo S.p.A., Hong Kong 161
JPMorgan Chase Bank, N.A. 摩根大通银行 007
KBC Bank N.V. Hong Kong Branch 比利时联合银行香港分行 178
KEB HANA BANK 046
Kookmin Bank 381
LAND BANK OF TAIWAN CO.,LTD. 台湾土地银行股份有限公司 264
LGT Bank AG., HK Branch 皇家銀行(香港) 342
Livi Bank Limited 388
Malayan Banking Berhad Hong Kong Branch 马来亚银行 063
Mashreq Bank Public Shareholding Company 379
Mega International Commercial Bank Co Ltd 兆丰国际商业银行 242
Melli Bank Plc 254
MITSUBISHI UFJ TRUST AND BANKING CORPORATION 三菱UFJ信托银行 138
Mizuho Bank, Ltd. 瑞穗银行 香港分行 109
Morgan Stanley Bank Asia Limited 摩根士丹利银行亚洲有限公司 384
Mox Bank Limited 389
MUFG Bank, Ltd. 三菱UFJ银行 047
Nanyang Commercial Bank, Limited 南洋商业银行有限公司 043
National Australia Bank Limited 150
National Bank of Pakistan 巴基斯坦国民银行 060
NATIXIS HONG KONG BRANCH 法国外贸银行香港 210
NatWest Markets Plc Hong Kong Branch 国民西敏寺资本市场银行有限公司 008
NongHyup Bank 農協銀行 376
O-Bank Co., Ltd 274
OCBC Wing Hang Bank Limited 华侨永亨银行有限公司 035
OVERSEA - CHINESE BANKING CORPORATION LIMITED 022
PHILIPPINE NATIONAL BANK 119
Ping An Bank Co., Ltd. 平安银行股份有限公司 385
Ping An OneConnect Bank (Hong Kong) Limited 平安壹账通银行(香港)有限公司 392
PT. BANK NEGARA INDONESIA (PERSERO) TBK. 印尼国家银行 066
Public Bank (Hong Kong) Limited 大众银行(香港)有限公司 028
Qatar National Bank (Q.P.S.C.) 卡塔尔国家银行 394
Royal Bank of Canada, Hong Kong Branch 080
Shanghai Commercial Bank Limited 上海商业银行有限公司 025
Shanghai Pudong Development Bank Co., Ltd. 上海浦东发展银行股份有限公司 345
Shinhan Bank Hong Kong Branch 新韓銀行香港分行 273
Skandinaviska Enskilda Banken AB 316
SOCIETE GENERALE HONGKONG BRANCH 法国兴业银行 081
STANDARD CHARTERED BANK (HONG KONG) LIMITED 渣打银行(香港)有限公司 003
STATE BANK OF INDIA 印度國家銀行香港分行 082
State Street Bank & Trust Company, Hong Kong 220
Sumitomo Mitsui Banking Corporation 三井住友银行 065
Sumitomo Mitsui Trust Bank, Limited, Hong Kong Branch 三井住友信托银行香港支店 371
TAI SANG BANK LTD. 大生银行有限公司 061
Tai Yau Bank Limited 大有银行有限公司 038
Taipei Fubon Commercial Bank 台北富邦商业银行股份有限公司 239
Taishin International Bank Co Ltd 台新国际商业银行 245
Taiwan Business Bank, Ltd. 台湾中小企业银行股份有限公司 230
Taiwan Cooperative Bank 合作金库商业银行 265
Taiwan Shin Kong Commercial Bank Co., LTD. 臺灣新光商業銀行股份有限公司 337
The Bank of East Asia, Limited 东亚银行有限公司 015
The Bank of New York Mellon, Hong Kong Branch 纽约梅隆银行有限公司 139
The Bank of Nova Scotia 076
The Chiba Bank Ltd 千叶银行 170
THE CHUGOKU BANK, LTD. 202
The Hachijuni Bank Ltd 188
The Hongkong and Shanghai Banking Corporation Limited 香港上海汇丰银行有限公司 004
The Shanghai Commercial & Savings Bank Ltd.Hong Kong Branch. 上海商业储蓄银行香港分行 269
THE SHIGA BANK, LTD. 滋賀銀行 199
The Shizuoka Bank, Ltd. 静冈银行 186
Toronto Dominion Bank 加拿大多倫多道明銀行 085
UBS AG Hong Kong 103
UCO BANK HONG KONG 045
UNICREDIT BANK AG HONG KONG BRANCH 裕信(德国)银行股份有限公司 164
UNION BANK OF INDIA UNION BANK OF INDIA 268
Union Bancaire Privee, UBP SA 瑞联银行 309
United Overseas Bank Limited 大华银行有限公司 071
Welab Bank Limited 390
Wells Fargo Bank, N.A. Hong Kong Branch 富国银行香港分行 180
Westpac Banking Corporation 澳大利亚西太平洋银行 151
Woori Bank Hong Kong Branch 118
YUANTA COMMERCIAL BANK CO.,LTD 元大商业银行有限公司 378
ZA Bank Limited 众安银行有限公司 387

6.3.Euro Zone list

Country(ISO-3) Country-CN Country-EN Payment speed Note
AUT 奥地利 Austria SEPA INSTANT Real-time
BEL 比利时 Belgium SEPA INSTANT Real-time
CYP 塞浦路斯 Cyprus SEPA INSTANT Real-time
CZE 捷克 Czech Republic SEPA INSTANT Real-time
DNK 丹麦 Denmark SEPA INSTANT Real-time
FIN 芬兰 Finland SEPA INSTANT Real-time
FRA 法国 France SEPA INSTANT Real-time
DEU 德国 Germany SEPA INSTANT Real-time
GRC 希腊 Greece SEPA INSTANT Real-time
HUN 匈牙利 Hungary SEPA INSTANT Real-time
ISL 冰岛 Iceland SEPA INSTANT Real-time
IRL 爱尔兰 Ireland SEPA INSTANT Real-time
ITA 意大利 Italy SEPA INSTANT Real-time
LUX 卢森堡公国 Luxembourg SEPA INSTANT Real-time
NLD 荷兰 Netherlands SEPA INSTANT Real-time
NOR 挪威 Norway SEPA INSTANT Real-time
POL 波兰 Poland SEPA INSTANT Real-time
PRT 葡萄牙 Portugal SEPA INSTANT Real-time
RO 罗马尼亚 Romania SEPA INSTANT Real-time
SVK 斯洛伐克 Slovakia SEPA INSTANT Real-time
SVN 斯洛文尼亚 Slovenia SEPA INSTANT Real-time
ESP 西班牙 Spain SEPA INSTANT Real-time
SWE 瑞典 Sweden SEPA INSTANT Real-time
CHE 瑞士 Switzerland SEPA INSTANT Real-time
AND 安道尔共和国 Andorra Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
BGR 保加利亚 Bulgaria Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
HRV 克罗地亚 Croatia Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
EST 爱沙尼亚 Estonia Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
LVA 拉脱维亚 Latvia Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
LIE 列支敦士登 Liechtenstein Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
LTU 立陶宛 Lithuania Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
MLT 马耳他 Malta Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
MCO 摩纳哥 Monaco Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
SMR 圣马力诺 San Marino Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
VAT 梵蒂冈 Vatican City Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays
UK 英国 United Kingdom Faster payment-Success in 2 hours

6.4.ID Type

Code Description_EN Description_CN
PASSPORT Passport 护照
NATIONAL_ID National Identification Card 国家身份证
DRIVING_LICENSE Driving License 驾照
SOCIAL_SECURITY Social Security Card/Number 社保卡
TAX_ID Tax Payer Identification Card/Number 纳税证
SENIOR_CITIZEN_ID Senior Citizen Identification Card 老年证
BIRTH_CERTIFICATE Birth Certificate 出生证明
VILLAGE_ELDER_ID Village Elder Identification Card 村长证
RESIDENT_CARD Permanent Residency Identification Card 永久居民身份证
ALIEN_REGISTRATION Alien Registration Certificate/Card 外国人登记证
PAN_CARD PAN Card 永久性账号卡(印度)
VOTERS_ID Voter’s Identification Card 选民证
HEALTH_CARD Health Insurance Card/Number 健康保险卡
EMPLOYER_ID Employer Identification Card 雇主证
WORKING_PERMIT Working permit 工作许可证
HK_MC_PASS HK_MC_PASS 港澳通行证
HK_IDENTITY_CARD HK_IDENTITY_CARD 香港身份证

6.5.RELATIONSHIP

Code Description_EN Description_CN
BROTHER Brother 兄弟
BROTHER_IN_LAW Brother-in-law 姐夫/妹夫
COUSIN Cousin 表亲
DAUGHTER Daughter 女儿
FATHER Father 父亲
FATHER_IN_LAW Father-in-law 岳父
FRIEND Friend 朋友
GRAND_FATHER Grandfather 祖父
GRAND_MOTHER Grandmother 祖母
HUSBAND Husband 丈夫
MOTHER Mother 母亲
MOTHER_IN_LAW Mother-in-law 岳母
NEPHEW Nephew 侄子
NIECE Niece 侄女
SELF Self (i.e. the sender, himself) 自己
SISTER Sister 姐妹
SISTER_IN_LAW Sister-in-law 嫂子/弟媳
SON Son 儿子
UNCLE Uncle 叔叔
WIFE Wife 妻子
AUNT Aunt 阿姨
EMPLOYEE Employee 雇员
BUSINESS_PARTNER Business Partner 工作伙伴
EMPLOYER Employer 雇主
SERVICE_PROVIDERS Service Providers 服务提供商
TRADERS Traders 交易员

6.6.SOURCE_INCOME

Code Description_EN Description_CN
SALARY Salary from Employment 雇佣工资
BUSINESS Own Business 经商
LOANS Loans 贷款
SAVINGS Interest 利息
DIVIDEND_INCOME Dividend income 股息收入
ASSETS_SALES Sales of assets 资产出售
SHARE_ISSUE Issue of share 股票发行
DEBENTURE Issue of bond or debenture 发行债券
TAX_REFUND Tax refund 退税
VENTURE_CAPITAL Venture capital 风险投资
CLAIMS Claims 索赔
COMPENSATION Compensation 补贴
SPOUSE Financial supports from Spouse 配偶资助
PROPERTY_INVESTMENT Property investment 房产投资
SHARES_INVESTMENT Shares investment 股份投资
PARENTS Financial supports from parents 父母资助
CHILDREN Financial supports from children 子女资助
RETIREMENT_FUND Retirement fund 退休金
RENTAL Rental or leasing income 租金或租赁收入
CASH Cash 现金
LOTTERY Lottery 彩票
GIFT Gift 馈赠
PART_TIME_JOB Part Time Job 兼职工作

6.7.Purpose Code

Code Description_EN Description_CN
FAMILY_SUPPORT Family support 家庭支出
EDUCATION Education 教育
GIFT Gift 礼品
MEDICAL_TREATMENT Medical treatment 医疗
MAINTENANCE_EXPENSES Maintenance or other expenses 生活费
TRAVEL Travel 旅游
SMALL_VALUE_REMITTANCE Small value remittance 小额汇款
CONSTRUCTION_EXPENSES Construction expenses 建筑费用
HOTEL_ACCOMMODATION Hotel accommodation 酒店住宿
ADVERTISING_EXPENSES Advertising and/or public relations related expenses 广告/公关费
ADVISORY_FEES Fees for advisory or consulting service 咨询服务费
BUSINESS_INSURANCE Business related insurance payment 商业保险
INSURANCE_CLAIMS Insurance claims payment 保险索赔
DELIVERY_FEES Delivery fees 外卖费/运费
EXPORTED_GOODS Payments for exported goods 出口商品支付/出口货物付款
SERVICE_CHARGES Payment for services 服务费
LOAN_PAYMENT Payment of loans 支付贷款
OFFICE_EXPENSES Office expenses 办公费用
PROPERTY_PURCHASE Residential property purchase 地产购买
PROPERTY_RENTAL Property rental payment 财产租赁
ROYALTY_FEES Royalty, trademark, patent and copyright fees 版税、商标费、专利费和版权费
SHARES_INVESTMENT Investment in shares 股票投资
FUND_INVESTMENT Fund investment 基金投资
TAX_PAYMENT Tax payment 纳税/支付税款
TRANSPORTATION_FEES Transportation fees 运输费用/交通费
UTILITY_BILLS Utility bills 水电费
PERSONAL_TRANSFER Personal transfer 私人转账
SALARY_PAYMENT Payment of salary 支付工资
OTHER_FEES Broker, commitment, guarantee and other fees 经纪人、委托、担保和其他费用
ACCOUNT_OPENING Account opening 开户
STUDYING_PAYMENT STUDYING_PAYMENT 学费

6.8.OCCUPATION

6.8.1.OCCUPATION FOR OTHER

Note: Applicable to occupations under the 2C transaction type remitted to China

Code Description_EN Description_CN
AGRICULTURE Agriculture 农业
DOCTOR Doctor 医生
FREELANCE_PROFESSION Freelance profession 自由职业
GOVERNMENT_OFFICER Government officer 公务员
HOUSEWIFE Housewife 家庭主妇
NURSE Nurse 护士
OFFICE_WORKER Office worker 白领
OFFICER Officer 官员
PUBLIC_EMPLOYEE Public employee 公职人员
RETIREMENT Retirement 退休
SELF_EMPLOYED Self-employed 自由职业
STUDENT Student 学生
TEACHER Teacher 教师
UNEMPLOYED Unemployed 失业
HOSPITALITY_WORKER Hospitality worker 酒店员工
SECURITY_SERVICES Security services 安全服务
DOMESTIC_WORKER Domestic worker 家政
RETAIL_WORKER Retail worker 零售
LABOURER Labourer 工人

6.8.2.OCCUPATION FOR CHINA(TOB)

Note: Applicable to occupations under the 2B transaction type remitted to China

Code Description_EN Description_CN
ARCHITECTURE ARCHITECTURE 建筑
MINING MINING 采矿
CATERING CATERING 餐饮
INSURANCE INSURANCE 保险
CONSULTATION CONSULTATION 咨询
REALESTATE REALESTATE 房地产
FAMILYSERVICE FAMILYSERVICE 家庭服务
INDUSTRIALMANUFACTURING INDUSTRIALMANUFACTURING 工业制造
AGRICULTUREANDANIMALHUSBANDRY AGRICULTUREANDANIMALHUSBANDRY 农业畜牧
BEAUTYSALON BEAUTYSALON 美容美发
ARTDESIGN ARTDESIGN 艺术设计
TOURISMSERVICE TOURISMSERVICE 旅游服务
ACADEMICRESEARCH ACADEMICRESEARCH 学术研究
INFORMATIONTECHNOLOGY INFORMATIONTECHNOLOGY 信息技术
EDUCATIONANDTRAINING EDUCATIONANDTRAINING 教育培训
HEALTHCAREANDMEDICINE HEALTHCAREANDMEDICINE 保健医疗
RETAILANDWHOLESALE RETAILANDWHOLESALE 零售批发
SPORTS SPORTS 体育运动
TRAFFICANDTRANSPORTATION TRAFFICANDTRANSPORTATION 交通运输

6.9.Banklist-Bankcode

List of supported banks in target countries

HTTP Request

POST GET_BANK_NETWORK_LIST

{
  "apiName": "GET_BANK_NETWORK_LIST",
  "entity": {
    "countryCode": "",
    "bankCode": "",
    "mode": ""
  }
}
curl -X POST http://staging.nextpls.com/v1/remittance
    -H "Content-Type: application/base64"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
        "apiName": "GET_BANK_NETWORK_LIST",
        "entity": {
          "countryCode": "",
          "bankCode": "",
          "mode": ""
                }
      }'
public class example{
    public static void main(String[] args){

        NextPlsClient client = 
            new DefaultNextPlsClient(
                "http://staging.nextpls.com/v1/remittance", 
                "test_client", "cek_tester_remit", "initial_tester01", 
                publicKey, secretKey);
      NextPlsBankNetworkListRequestDto bankNetworkListRequestDto = new NextPlsBankNetworkListRequestDto();
      bankNetworkListRequestDto.setCountryCode("IND");
      NextPlsGetBankNetworkListRequest bankNetworkListRequest = NextPlsGetBankNetworkListRequest.build(bankNetworkListRequestDto);
      client.execute(bankNetworkListRequest);             
    }
}

6.9.1.Request Body

参数 类型 描述 O/M
apiName String GET_BANK_NETWORK_LIST M
entity Object Parameter list M
countryCode String(3) Receipt Country 0
bankCode String bankCode 0
mode String Transaction Type 0

Response Body:

{
  "apiName":"GET_BANK_NETWORK_LIST_R",
  "code":"200",
  "entity":{
    "bankNetworkList":[
      {
        "countryCode":"IND",
        "bankCode":"10140001",
        "bankName":"All Banks",
        "mode":"BANK",
        "branchAddr":"India"
      },
      {
        "countryCode":"IND",
        "bankCode":"10149001",
        "bankName":"UPI",
        "mode":"WALLET",
        "branchAddr":"India"
      },
      {
        "countryCode":"IND",
        "bankCode":"10140005",
        "bankName":"FT",
        "mode":"BANK",
        "branchAddr":"India"
      },
      {
        "countryCode":"IND",
        "bankCode":"10140006",
        "bankName":"NEFT",
        "mode":"BANK",
        "branchAddr":"India"
      },
      {
        "countryCode":"IND",
        "bankCode":"10140007",
        "bankName":"IMPS",
        "mode":"BANK",
        "branchAddr":"India"
      },
      {
        "countryCode":"IND",
        "bankCode":"10140008",
        "bankName":"RTGS",
        "mode":"BANK",
        "branchAddr":"India"
      }
    ]
  },
  "msg":"success"
}

6.9.2.Response Body

Field Type Describe
apiName String GET_BANK_NETWORK_LIST_R
code String Result Code
msg String Result Message
entity Object arameter list
countryCode String country code
bankCode String bankCode used 4.4.DoTransaction beneficiaryBankCode field
bankName String bankName
mode String transaction mode
branchAddr String branch address

6.10.Local Routing Code

Value Source Description for beneficiaryRoutingCode

6.10.1.Australia

BSB

BSB (Bank-State-Branch) number is a 6-digit code that identifies the receiving bank and branch for local payments in Australia and we need this code to complete local transfers. The BSB number consists of the bank code (the first two digits), the province code (the third digit) and the branch code (the last three digits). You can obtain the BSB number on the bank's website, and the receiving bank's BSB number will be included in its information. Links to the websites of the four largest Australian banks are provided below for your reference.

Westpac bank

ANZ

Commonwealth Bank of Australia

NAB

BPAY

BPAY is an electronic bill payment system in Australia that enables payments to be made to organisations that register for BPAY bills through the online platform of financial institutions, mobile or landline banking. We can pay tuition fees for students through Bpay. You need to provide biller code and reference number of the receiving bank for payment through Bpay. biller code is the unique code of the receiving institution, and reference number is the student's student number. Sample: avatar

6.10.2.USA

ABA

The ABA routing number is a 9-digit identification number assigned to a financial institution by the American Bankers Association (ABA) that identifies the financial institution making the payment. Routing numbers can be called check routing numbers, ABA numbers, or Route forwarding numbers (RTN). Routing numbers may vary depending on the opening status of the receiving account and the type of transaction being made. You can find the bank's ABA number on the check, or you can find it through the bank's website. A link to the Bank of America website is provided below for your reference.

Bank of America

Wells Fargo

Chase

Citi Bank

US Bank NA

PNC Bank

TD Bank

Region Bank

6.10.3.UK

Sort code

A Sort code consists of six digits, usually formatted as three pairs of numbers, such as 12-34-56. It can be used to identify the bank and the branch where the account is located. In some cases, the first digit of the sorting code represents the bank itself, while in other cases the first two digits represent the bank. You can find the sort code under your bank card or contact the receiving bank to obtain it.

【The rules of IBANK NO separated into sort code and BankAccountNumber】

avatar

6.10.4.Singapore

Bank Code

The Singapore Bank Code is a seven-digit code used to identify banks in Singapore, which contains a four-digit bank code and a three-digit branch code. You can check the list of banks we support in the following link. In addition, you can check the bank code and branch code on the bank website.

6.10.5.Hong Kong

Bank Code

The Hong Kong Bank code is a three-digit number used to locate a Hong Kong bank for payments made locally in Hong Kong. You can find the bank code of your receiving bank in the following link. You can insert the branch code in front of your account number to more precisely locate your receiving bank.

6.10.6.Canada

Routing Number

Canadian routing numbers are routing codes used for local payments in Canada, and there are usually two formats applied in different scenarios: electronic transfer routing codes and MICR routing codes. The electronic transfer (EFT) routing code usually starts with 0 and consists of 9 digits (0YYYXXXXX), which is commonly used for online electronic transfers. MICR routing codes typically consist of 8 digits with a dash link (XXXXX-YYY) in the fifth and sixth digits and are commonly used for check transfers. The routing codes in both formats consist of a 5-digit branch code (XXXXX) and a 3-digit bank code (YYY). Routing codes can be obtained through online banking and checks.

example:

avatar

Bill payment

Bill payments in Canada refer to the process of settling financial obligations for various services and products. These payments are typically issued monthly or quarterly, encompassing utilities, telecommunications, internet, credit cards, insurance, and other recurring expenses.

Electronic Payment Options:

Online Bill Payments: Most Canadian banks allow bill payments through their online banking platforms. Simply access the bill payment section, enter the biller's information, payment amount, and authorize the transaction using your online banking credentials.

avatar

The Beneficiary will receive the bill within 2-3 working days。

E-Transfer

E-transfer is a secure and convenient way to send and receive money electronically in Canada. It is a popular option for individuals and businesses to pay each other, split bills, and send money as gifts. E-transfers are processed through Interac, a Canadian financial institution that connects participating banks and credit unions.

To send an e-transfer, you will need to know the recipient's email address or phone number and their bank account information. You can also send an e-transfer without knowing the recipient's bank account information, but they will need to create an Interac e-Transfer account to receive the money.

To receive an e-transfer, you will need to create an Interac e-Transfer account with your bank or credit union. Once you have an account, you will receive a notification when someone sends you money. You can then accept the money and have it deposited into your bank account.

Here are some of the benefits of using e-transfer:

It is fast and convenient. E-transfers can be sent and received instantly.

It is secure. E-transfers are protected by Interac's secure online banking platform.

It is free or low-cost. Most banks and credit unions do not charge a fee for sending or receiving e-transfers.

6.10.7.Europe

IBAN

The IBAN is a bank account number developed by the European Committee for Banking Standards (ECBS) in accordance with its standards. The bank account numbers of Member States participating in the ECBS all have a corresponding IBAN number. You can contact your collection bank to obtain the IBAN number. The IBAN number is a maximum of 34 characters, including country code + bank code + region + account number + verification code. You can obtain the IBAN number through the bank's website.

Countries IBAN Beginning(country code) Length
Austria AT 20
Belgium BE 16
Bulgaria BG 22
Croatia HR 21
Cyprus CY 28
Czech Republic CZ 24
Denmark DK 18
Estonia EE 20
Finland FI 18
France FR 27
Germany DE 22
Gibraltar GI 23
Greece* GR 27
Hungary HU 28
Iceland IS 26
Ireland IE 22
Italy IT 27
Latvia LV 21
Liechtenstein LI 21
Lithuania LT 20
Luxembourg LU 20
Malta MT 31
Monaco MC 27
Netherlands NL 18
Norway NO 15
Poland PL 28
Portugal PT 25
Romania RO 24
San Marino SM 27
Slovakia SK 24
Slovenia SI 19
Spain ES 24
Sweden SE 24
Switzerland CH 21
UK GB 22

6.10.8.Swift

Swift code

Swift code is generally used to send international wire transfers, letters of credit telegraphy, can locate most banks around the world. It usually consists of bank code (four digits), country code (two digits), area code (two digits) and branch code (three digits). You can check the SWIFT code of your receiving bank through the following link, or contact the bank to obtain it.

Swift Code查询

6.11.Additional field key-value pair enumeration

extendInfo

Key Value
txnOriginCurrency The original currency of the order
txnOriginAmount The original amount of the order
txnOriginExchangeRate The original exchange rate for the order
remitterWebsite Remitter’s company website

6.12.Source_State Code For Mexico/ Brasilia

Instructions for use: Applicable to when PayOutCountry is MEX/BRA, the supported PayInCountry only supports the following 36 countries; and remitterAddress3 must be filled in and passed STATE_CODE;

PayInCountry NAME STATE_NAME STATE_CODE
USA AMERICA ALABAMA AL
USA AMERICA ALABAMA AL
USA AMERICA ALASKA AK
USA AMERICA ARIZONA AZ
USA AMERICA ARKANSAS AR
USA AMERICA CALIFORNIA CA
USA AMERICA COLORADO CO
USA AMERICA CONNECTICUT CT
USA AMERICA DELAWARE DE
USA AMERICA FLORIDA FL
USA AMERICA GEORGIA GA
USA AMERICA HAWAII HI
USA AMERICA IDAHO ID
USA AMERICA ILLINOIS IL
USA AMERICA INDIANA IN
USA AMERICA IOWA IA
USA AMERICA KANSAS KS
USA AMERICA KENTUCKY KY
USA AMERICA LOUISIANNA LA
USA AMERICA MAINE ME
USA AMERICA MARYLAND MD
USA AMERICA MASSACHUSETTS MA
USA AMERICA MICHIGAN MI
USA AMERICA MINNESOTA MN
USA AMERICA MISSISSIPPI MS
USA AMERICA MISSOURI MO
USA AMERICA MONTANA MT
USA AMERICA NEBRASKA NE
USA AMERICA NEVADA NV
USA AMERICA NEW HAMPSHIRE NH
USA AMERICA NEW JERSEY NJ
USA AMERICA NEW MEXICO NM
USA AMERICA NEW YORK NY
USA AMERICA NORTH CAROLINA NC
USA AMERICA NORTH DAKOTA ND
USA AMERICA OHIO OH
USA AMERICA OKLAHOMA OK
USA AMERICA OREGON OR
USA AMERICA PENNSYLVANIA PA
USA AMERICA RHODE ISLAND RI
USA AMERICA SOUTH CAROLINA SC
USA AMERICA SOUTH DAKOTA SD
USA AMERICA TENNESSEE TN
USA AMERICA TEXAS TX
USA AMERICA UTAH UT
USA AMERICA VERMONT VT
USA AMERICA VIRGINIA VA
USA AMERICA WASHINGTON D.C DC
USA AMERICA WASHINGTON STA WA
USA AMERICA WEST VIRGINIA WV
USA AMERICA WISCONSIN WI
USA AMERICA WYOMING WY
DEU GERMANY DE-NA DE-NA
AUT AUSTRIA AT-NA AT-NA
BEL BELGIUM BE-NA BE-NA
BGR BULGARIA BG-NA BG-NA
CYP CYPRUS CY-NA CY-NA
HRV CROATIA HR-NA HR-NA
SVN SLOVENIA SI-NA SI-NA
SVK SLOVAKIA SK-NA SK-NA
ESP SPAIN ES-NA ES-NA
EST ESTONIA  EE-NA EE-NA
FIN FINLAND FI-NA FI-NA
FRA FRANCE FR-NA FR-NA
GRC GREECE GR-NA GR-NA
MLT MALTA MT-NA MT-NA
HUN HUNGARY HU-NA HU-NA
IRL IRELAND IE-NA IE-NA
ITA ITALY IT-NA IT-NA
LVA LATVIA LV-NA LV-NA
LTU LITHUANIA LT-NA LT-NA
LUX LUXEMBOURG LU-NA LU-NA
NLD NETHERLANDS NL-NA NL-NA
POL POLAND PL-NA PL-NA
PRT PORTUGAL PT-NA PT-NA
CZE CZECH REPUBLIC CZ-NA CZ-NA
RO ROMANIA RO-NA RO-NA
SWE SWEDEN SE-NA SE-NA
HKG HONG KONG HK-NA HK-NA
GRL GREENLAND GL-NA GL-NA
GBR UNITED KINGDOM GB-NA GB-NA
NOR NORWAY NO-NA NO-NA
JPN JAPAN JP-NA JP-NA
AUS AUSTRALIA AU-NA AU-NA
CAN CANADA CA-NA CA-NA
SMR SAN MARINO SM-NA SM-NA
NZL NEW ZEALAND NZ-NA NZ-NA

6.13.Destination_State Code For Mexico/ Brasilia

Instructions for use: Applicable to when PayOutCountry is MEX/BRA, benefitiaryAddress3 of Destination_State must be filled in and passed STATE_CODE;

PayOutCountry COUNTRY_NAME STATE_NAME STATE_CODE
MEX MEXICO CHIHUAHUA CHH
MEX MEXICO COAHUILA COA
MEX MEXICO COLIMA COL
MEX MEXICO DURANGO DUR
MEX MEXICO ESTADO DE MEXICO MEX
MEX MEXICO GUANAJUATO GUA
MEX MEXICO GUERRERO GRO
MEX MEXICO HIDALGO HID
MEX MEXICO JALISCO JAL
MEX MEXICO MEXICO DF DIF
MEX MEXICO MICHOACAN MIC
MEX MEXICO MORELOS MOR
MEX MEXICO NAYARIT NAY
MEX MEXICO NUEVO LEON NLE
MEX MEXICO OAXACA OAX
MEX MEXICO PUEBLA PUE
MEX MEXICO QUERETARO QUE
MEX MEXICO QUINTANA ROO ROO
MEX MEXICO SAN LUIS POTOSI SLP
MEX MEXICO SINALOA SIN
MEX MEXICO SONORA SON
MEX MEXICO TABASCO TAB
MEX MEXICO TAMAULIPAS TAM
MEX MEXICO TLAXCALA TLA
MEX MEXICO VERACRUZ VER
MEX MEXICO YUCATAN YUC
MEX MEXICO ZACATECAS ZAC
MEX MEXICO AGUASCALIENTES AGU
MEX MEXICO BAJA CALIFORNIA NORTE BCN
MEX MEXICO CAMPECHE CAM
MEX MEXICO CHIAPAS CHP
MEX MEXICO BAJA CALIFORNIA SUR BCS
BRA BRASIL ACRE BR-AC
BRA BRASIL ALAGOAS BR-AL
BRA BRASIL AMAPA BR-AP
BRA BRASIL AMAZONAS BR-AM
BRA BRASIL BAHIA BR-BA
BRA BRASIL CEARA BR-CE
BRA BRASIL DISTRITO FEDERAL BR-DF
BRA BRASIL ESPIRITO SANTO BR-ES
BRA BRASIL GOIAS BR-GO
BRA BRASIL MARANHAO BR-MA
BRA BRASIL MATO GROSSO BR-MT
BRA BRASIL MATO GROSSO DO SUL BR-MS
BRA BRASIL MINAS GERAIS BR-MG
BRA BRASIL PARA BR-PA
BRA BRASIL PARAIBA BR-PB
BRA BRASIL PARANA BR-PR
BRA BRASIL PERNAMBUCO BR-PE
BRA BRASIL PIAUI BR-PI
BRA BRASIL RIO DE JANEIRO BR-RJ
BRA BRASIL RIO GRANDE DO NORTE BR-RN
BRA BRASIL RIO GRANDE DO SUL BR-RS
BRA BRASIL RONDONIA BR-RO
BRA BRASIL RORAIMA BR-RR
BRA BRASIL SANTA CATARINA BR-SC
BRA BRASIL SAO PAULO BR-SP
BRA BRASIL SERGIPE BR-SE
BRA BRASIL TOCANTINS BR-TO

6.14.FileTypeEnum

Note: This field applies to fileType field in uploaded files

Code Description_EN Description_CN
IDENTITY identity 身份证明
SOURCE_OF_FUNDS source-of-funds 收入证明
ADDRESS address 地址证明
PROOF_OF_PAYMENT proof-of-payment 付款证明
RELATIONSHIP_PROOF relationship-proof 关系证明
WORK_PROOF work-proof 工作证明
OTHERS_PROOF others-proof 其他证明
PEP_CHECK pep-check 前置验证
RELATIONSHIP_FAST relationship-proof-fast 关系证明-快速到账
RECEIPT receipt 收据
JOINT_ACCOUNT joint-account 联名账户
EXPIRED_IDENTITY expired-identity 证件过期
ADDRESS_OR_PAYER_ID_CARD ACADEMICRESEARCH 有效地址证明或本人身份证件
PAYMENT_FOR_STUDYING_ABROAD payment-for-studying-abroad 留学缴费证明
MEDICAL_PROOF medical-proof 医疗证明
TRAVEL_PROOF travel-proof 旅行证明
STUDY_ABROAD_PROOF study-abroad-proof 留学证明
SELFIE selfie 自拍头像
SUPPLEMENT supplement 补充材料
PAYEE_IDENTITY cn-remit-payee-proof 收款人身份证明
UNKNOWN unknown 未知

callback

When a transfer order is processed, the change in state is notified in real time to the callback URL provided (if provided).

Partners must implement this endpoint to receive these state changes. The endpoint should expect an HTTP POST request that contains a transaction object represented in JSON.

Upon successful receipt of the data, the callback endpoint should respond using HTTP 2XX. And for now the notification will be sent only once.

The status will be notified:TRANSACTION_SUCCESS、TRANSACTION_FAILED、TRANSACTION_CLOSED、TRANSACTION_REFUND

curl -X POST /callBack
    -H "Content-Type: application/json"
    -H "Authorization: your authorization"
    -H "Signature: generated signature"
    -H "Content-Code: generated content-code"
    -d
    '{
       "apiName": "TRANSACTION_CLOSED",
          "entity": {
            "clientTxnNo": "1716336209284",
            "commission": "0",
            "commissionCurrency": "USD",
            "createTime": "2024-05-22 08:03:30",
            "errorCode": 1000,
            "errorMsg": "Merchant has insufficient funds;1;",
            "failedTime": "2024-08-26 13:16:32",
            "payInAmount": "10",
            "payInCurrency": "USD",
            "payOutAmount": "173.92",
            "payOutCurrency": "MXN",
            "status": "TRANSACTION_CLOSED",
            "txnNo": "CC245M0239937381"
    }
}'

Request Body

Field Type Description O/M
apiName String Same to the status below M
entity Object Callback parameters M
txnNo String Unique code for NextPls txn M
clientTxnNo String(20) Unique code for partner's txn M
payInCurrency String(3) Pay In Currency M
payInAmount String(18) Pay In Amount M
payOutCurrency String(3) Pay Out Currency M
payOutAmount String(18) Pay Out Amount M
commission String commission M
commissionCurrency String currency of commission M
errorCode String Error Code M
errorMsg String Error Message M
status String Status M
createTime String Create Time M
finishTime String Finish Time M
failedTime String Failed Time M