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
The following figure shows the flow of NextPls order status
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
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
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¤cy 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 | |
---|---|---|
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-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.
Commonwealth Bank of Australia
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:
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.
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】
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:
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.
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.
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 |