接口版本 v3.0.0.0
欢迎选择 NextPls! 我们会最大程度地保障您的资金和数据安全。
我们拥有一支优秀的开发团队。
如果想获取更多信息,可以访问我们的官方网站 NextPls 更多地了解我们。
本文档介绍了 API 开发者平台的 第2版,主要新增了对接流程所需的枚举等内容;
我们建议首先使用 SDK 开始:
<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代码
接入指引
在启动开发Nextpls产品和解决方案前,请先阅读我们的最新文档,包括接入指南,API接口,代码示例Demo等;
2.1.接入流程
接入流程大概介绍整套对接过程步骤,请按如下引导步骤完成对接;
1.准备工作
1)完成并提交《商户开通国家申请表》
2)NextPls会以邮件形式提供对接相关文件、商户站账号信息以及线下联调商户信息;
2.线下环境联调和验收
1)根据NextPls的api文档进行接口的开发和调试;
2)完成NextPls提供的测试用例,并将结果以邮件形式发送给我们 payout_support@wotransfer.com;
3.上线和试点交易
1)NextPls确认测试用例完成,并提供生产账号相关信息;
2)可以使用生产账号向NextPls发起试点交易并观察结果;
3)向NextPls发起上线确认邮件(提早三天)发送至 payout_support@wotransfer.com;
4.产品上线开量
1)双方在正式上线开量之前,核对线上配置;
2)正式上线开量;
2.2.系统交互
下图展示了我们推荐的商户和NextPls接口交互的流程和方式
下图展示了NextPls订单状态的流转
2.3.安全规则
2.3.1.准备工作
2.3.1.1.生成一个CEK
消息在发送到NextPls之前,所有的请求体都应该使用加密算法对请求体进行加密。因此,我们需要一个CEK(内容加密密钥),该密钥将被加密后放在请求头的Content-Code的字段中发送到NextPls服务器。
我们希望一个CEK由两个16位字符串拼接而成(16位的初始向量ivParameter和16位的AES密钥sKey)
示例
item | ASCII_string |
---|---|
sKey | cek_tester_remit |
ivParameter | initial_tester01 |
CEK | initial_tester01cek_tester_remit |
2.3.1.2.生成一对公私钥
使用RSA加密算法生成公钥和私钥,NextPls这边也会有一对公钥和私钥,双方互相交换公钥,各自保留私钥隐私,保证信息安全;
RSA算法生成一对公私钥示例:
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.处理请求
2.3.2.1.加密请求体
将请求发送到NextPls之前,应使用CEK加密消息体部分 对消息体进行加密时,应使用AES/CBC/PKCS5Padding算法,之后再使用BASE64对结果进行转码。
加密体加密示例:
{
"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.加密CEK
在调用API前,必须将加密后的CEK放在请求头的"Content-Code"参数中。应使用RSA算法以及NextPls的公钥对CEK进行加密,所有的客户都会获得由NextPls提供的一个用于CEK加密的专有公钥。
加密CEK示例:
/**
*
* @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.签名
在调用API前,还必须在请求头中附加签名值。签名值用于认证请求是否来自于客户方。 签名为对“消息体加密后的结果”进行再签名,使用的密钥是商户的私钥,签名算法为SHA256withRSA,之后仍需使用BASE64对结果进行转码。结果放在请求头的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.请求示例
使用加密的CEK、加密的方法体和签名便可组成一个完整的请求
示例
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.处理返回
2.3.3.1.验证签名
为了验证NextPls服务器的真实性,客户方需要将签名进行SHA256withRSA算法解密,这里用到的是NextPls的公钥,并与加密请求体进行校验,如果结果不是true,这意味着无效的签名,响应主体的真实性得不到保证,客户不应该进行进一步的处理。
签名验证示例:
/**
* @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解码获取
所有的响应体在从NextPls服务器发送之前都使用AES/CBC/PKCS5Padding算法进行加密。因此,它需要首先从http报头中的Content-Code字段中解析CEK(通过内容加密密钥) CEK由32字节的随机字符(初始向量为16字节,AES密钥为16字节)组成。它是用客户提供的公钥(RSA)进行加密的。所以客户需要准备好相应的私钥进行解密。
私钥解密示例:
/**
* 私钥解密
*
* @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.返回体解码
根据上一步获取的CEK的真实密钥,解码加密后的响应体,以获取响应的json对象。
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;
}
}
交易接口
3.1.GetBalance
获取账户可用余额
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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | GET_BALANCE | M | |
entity | Object | 客户方请求参数 | M | |
currency | String(3) | 存款币种 | 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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | GET_BALANCE_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
partnerCode | String | 客户编号 | |
cashAcc | array | 现金账户 | |
balance | 余额 | ||
currency | 币种 | ||
creditAcc | array | 授信账户 | |
balance | 余额 | ||
currency | 币种 | ||
cashFreezeAcc | array | 现金冻结账户 | |
balance | 余额 | ||
currency | 币种 | ||
creditFreezeAcc | array | 授信冻结账户 | |
balance | 余额 | ||
currency | 币种 |
3.2.GetAccountFlowRecord
获取账户变动流水记录
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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | GET_ACCOUNT_FLOW_RECORD | M | |
entity | Object | 客户方请求参数 | M | |
currency | String(3) | 存款币种 | O | |
type | String(24) | 交易类型 | O | |
dateFrom | String(10) | 开始时间 | M | |
dateTo | String(10) | 结束时间 | 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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | GET_ACCOUNT_FLOW_RECORD_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
cash | array | 现金流水 | |
balance | 变动后余额 | ||
currency | 币种 | ||
changeAmount | 本次变动金额 | ||
type | 账户变动类型 | ||
createTime | 发生时间 | ||
credit | array | 授信流水 | |
balance | 变动后余额 |
3.3.GetExRate
获取汇率
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.setTransacationType("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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | GET_EX_RATE | M | |
entity | Object | 客户方请求参数 | M | |
payInCountry | String(3) | 汇入国家 | M | |
payInCurrency | String(3) | 存入币种 | M | |
payOutCountry | String(3) | 到账国家 | M | |
payOutCurrency | String(3) | 到账币种 | M | |
transactionType | String(3) | 交易类型 | M | |
paymentMode | String(20) | 到账方式 | 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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | GET_REMITTER_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
payInCountry | String | 存入国家 | |
payInCurrency | String | 存入币种 | |
payOutCountry | String | 到账国家 | |
payOutCurrency | String | 到账币种 | |
exRate | String | 汇率 | |
transactionType | String | 交易类型 | |
paymentMode | String | 到账方式 |
3.4.DoTransactionPre
预创建订单
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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | DO_TRANSACTION_PRE | M | |
entity | Object | 客户方请求参数 | M | |
clientTxnNo | String(20) | 客户方唯一编号 | M | |
transactionType | String(3) | 交易类型 | O | |
payInCountry | String(3) | 汇款(源)国家-ISO-3位国家编码 示例Singapore传 SGP | M | |
payInCurrency | String(3) | 汇款(源)币种,ISO 4217格式 | M | |
payInAmount | String(18) | 汇款(源)金额 | C | |
payOutCountry | String(3) | 到账(目标)国家-ISO-3位国家编码 示例Philippine传 PHL | M | |
payOutCurrency | String(3) | 到账(目标)币种,ISO 4217格式 | M | |
payOutAmount | String(18) | 到账(目标)金额 | C | |
transferCurrency | String(3) | 交易币种(固定侧, 必须是汇款或到账币种) | M | |
paymentMode | String(20) | 到账方式 | M |
参考 国家/地区&币种代码
Response Body:
{
"apiName": "DO_TRANSACTION_PRE_R",
"code": "200",
"msg": "success",
"entity": {
"txnNo": "IU201G0279816077",
"clientTxnNo": "1000",
"transactionType": "C2C",
"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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | DO_TRANSACTION_PRE_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
txnNo | String | 交易编号 | |
clientTxnNo | String | 客户方交易编号 | |
transactionType | String | 交易类型 | |
payInAmount | String | 汇款(源)金额 | |
payInCurrency | String | 汇款(源)币种 | |
payOutCurrency | String | 到账(目标)币种 | |
payOutAmount | String | 到账(目标)金额 | |
transferCurrency | String | 交易币种 | |
paymentMode | String | 支付方式 | |
exchangeRate | String | 汇率 | |
commission | String | 手续费 | |
commissionCurrency | String | 手续费币种 | |
totalAmount | String | 支付总额 |
3.5.DoTransaction
创建订单
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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | DO_TRANSACTION | M | |
entity | Object | 客户方请求参数 | M | |
txnNo | String(20) | 订单编号 | M | |
clientTxnNo | String(20) | 客户方订单编号 | M | |
purposeCode | String(16) | 汇款目的 | C | |
remitterFirstName | String(50) | 汇款人名-英:当交易类型是C2B/C2C必填 | M | |
remitterMiddleName | String(50) | 汇款人中间名-英 | O | |
remitterLastName | String(50) | 汇款人姓-英:当交易类型是C2B/C2C需要必填 | C | |
remitterFirstLocalName | String(50) | 汇款人名-母语:如个人证件签发地/所在国家/地区是中国大陆时传送包括中文字符 | C | |
remitterMiddleLocalName | String(50) | 汇款人中间名-母语 | O | |
remitterLastLocalName | String(50) | 汇款人姓-母语:如个人证件签发地/所在国家/地区是中国大陆时传送包括中文字符 | C | |
remitterMobile | String(20) | 汇款人手机号 | M | |
remitterEmail | String(50) | 汇款人邮箱 | O | |
remitterAddress1 | String(35) | 汇款人地址(详细地址) -英/拼音 | M | |
remitterAddress2 | String(35) | 汇款人地址(城市) -英/拼音 | O | |
remitterAddress3 | String(50) | 汇款人地址(省/州) -英/拼音;当Payoutcountry是MXN/BRA时必填,需按 Source_State Code List 传值; | O | |
remitterPostalCode | String(16) | 汇款人邮编 | C | |
remitterOccupation | String(64) | 汇款人职业 | C | |
remitterIdType | String(16) | 汇款人证件类型 | C | |
remitterIdNumber | String(20) | 汇款人证件号 | C | |
remitterIdDesc | String(30) | 汇款人证件描述 | C | |
remitterIdIssueDate | String(10) | 汇款人证件签发日期 (MM/DD/YYYY):适用于交易类型是C2B/C2C | O | |
remitterIdExpDate | String(10) | 汇款人证件有效期 (MM/DD/YYYY):汇入中国时为平台注册日期( yyyy-MM-dd HH:mm:ss);其他到账国是证件有效期 (MM/DD/YYYY) | O | |
remitterBirthdate | String(10) | 汇款人生日 (MM/DD/YYYY):适用于交易类型是C2B/C2C | O | |
remitterCountryOfBirth | String(10) | 汇款人出生国家:适用于交易类型是C2B/C2C | O | |
remitterGender | String(1) | 汇款人性别. M=Male, F=Female | O | |
remitterNationality | String(3) | 汇款人国籍(3位国家编码):示例Philippine传 PHL | C | |
remitterAccountNumber | String(30) | 汇款人账户号 | O | |
remitterCompanyName | String(100) | 汇款人公司名称:适用于交易类型是B2C/B2B | C | |
remitterCompanyRegistrationNumber | String(50) | 汇款人公司注册编号:适用于交易类型是B2C/B2B(英文/数字) | C | |
remitterDateOfIncorporation | String(10) | 汇款人公司成立日期(MM/DD/YYYY):适用于交易类型是B2C/B2B | C | |
remitterCompanyRegistrationCountry | String(3) | 汇款人公司登记所在国:适用于交易类型是B2C/B2B | C | |
sourceOfIncome | String(16) | 收入来源 | M | |
beneficiaryFirstName | String(50) | 收款人名-英:当交易类型是B2C/C2C时必填 | C | |
beneficiaryMiddleName | String(50) | 收款人中间名-英 | O | |
beneficiaryLastName | String(50) | 收款人姓-英:当交易类型是B2C/C2C时必填 | M | |
beneficiaryFirstLocalName | String(50) | 收款人名-母语 | O | |
beneficiaryMiddleLocalName | String(50) | 收款人中间名-母语 | O | |
beneficiaryLastLocalName | String(50) | 收款人姓-母语 | O | |
beneficiaryMobile | String(20) | 收款人手机号 | C | |
beneficiaryEmail | String(50) | 收款人邮箱 | O | |
beneficiaryAddress1 | String(35) | 收款人地址(详细街道) | C | |
beneficiaryAddress2 | String(35) | 收款人地址(城市) | O | |
beneficiaryAddress3 | String(35) | 收款人地址(省/州):1)如果收款人是美国地区 省/州(State)必填需传值 美国州列表 2)收款人是巴西/墨西哥地区省/州(State)必填需传值 Destination_State Code List | O | |
beneficiaryPostalCode | String(16) | 收款人邮编 | C | |
beneficiaryOccupation | String(64) | 收款人职业 | C | |
beneficiaryIdType | String(16) | 收款人身份类型 | O | |
beneficiaryIdNumber | String(20) | 收款人证件号码 | O | |
beneficiaryIdDesc | String(20) | 收款人证件描述 | C | |
beneficiaryIdIssueDate | String(10) | 证件签发日期(MM/DD/YYYY) | O | |
beneficiaryIdExpDate | String(10) | 证件有效日期(MM/DD/YYYY) | O | |
beneficiaryBirthdate | String(10) | 收款人生日(MM/DD/YYYY) | O | |
beneficiaryCountryOfBirth | String(3) | 收款人出生国家 | O | |
beneficiaryGender | String(1) | 收款人性别 | O | |
beneficiaryNationality | String(3) | 收款人国籍(3位国家编码) | C | |
beneficiaryRelationship | String(16) | 与汇款者的关系 | C | |
beneficiaryBankCode | String(20) | 收款机构编号:可通过收款方银行名称查询的内部银行编码,详见:银行编码 | C | |
beneficiaryBankName | String(64) | 收款银行名称 | C | |
beneficiaryBankAccountNumber | String(30) | 收款银行账户: 校验收款方账号为银行卡号传此字段,其他不传 | C | |
beneficiaryBankAccountName | String(35) | 收款户名 | C | |
beneficiaryAccount | String(35) | 收款账号:校验收款方账号如果是手机号/邮箱号传此字段,其他不传 | C | |
beneficiaryAccountType | String(35) | 收款账号类型:汇入美国时需必填(Checking/ Savings),汇入越南时必填(ACC/PAN), 汇入南美需传,其他地区不传; | C | |
beneficiaryBankAddress | String(35) | 收款银行地址 | O | |
beneficiaryIban | String(35) | 收款人银行IBAN:当收款方常驻国家(地区)是欧洲国家时或汇入英国走IBAN方式时必填;IBAN不支持下发英镑(GBP)到账,只支持欧元(EUR) | C | |
beneficiarySwiftCode | String(16) | 收款人银行Swift Code:根据不同银行遵循的标准选填 | C | |
beneficiaryRoutingCode | String(16) | 收款人银行 Routing Code: 下述到账国必填: HKG-3 digit、GBR -sort code、 USA-ABA、 AUS-BSB、JPN-Branch Code+Branch Name(示例518-堂島,用-分隔) | C | |
beneficiaryMsg | String(120) | 收款人附言 ,个别到账国不支持详见参数能力表:关注不同到账国可支持附言字符数不同 | C | |
beneficiaryCompanyName | String(100) | 收款人公司名称:交易类型是C2B/B2B时必填 (需英文/数字 | C | |
beneficiaryCompanyRegistrationNumber | String(50) | 收款人公司注册编号:适用于交易类型是C2B/B2B | C | |
beneficiaryDateOfIncorporation | String(10) | 收款人公司成立日期(MM/DD/YYYY):适用于交易类型是C2B/B2B | C | |
beneficiaryCompanyRegistrationCountry | String(3) | 收款人公司登记所在国:适用于交易类型是C2B/B2B | C | |
extendInfo | String(2048) | 扩展信息 ,仅用于扩展信息的收集。采用JSON格式。 | C |
Response Body:
{
"apiName": "DO_TRANSACTION_R",
"code": "200",
"msg": "success",
"entity": {
"txnNo": "IU201G0279816077",
"clientTxnNo": "1000",
"status": "TRANSACTION_ING"
}
}
3.5.3.Response Body
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | DO_TRANSACTION_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
txnNo | String | NextPls订单唯一编号 | |
clientTxnNo | String | 客户方订单唯一编号 | |
status | String | 订单状态 | |
errorMsg | String | 订单错误信息 |
3.6.GetTransactionStatus
获取交易状态
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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | GET_TRANSACTION_STATUS | M | |
entity | Object | 客户方请求参数 | M | |
txnNo | String(20) | NextPls订单唯一编号 | M | |
clientTxnNo | String(20) | 客户方订单唯一编号 | M |
Response Body:
{
"apiName": "GET_TRANSACTION_STATUS_R",
"code": "200",
"msg": "success",
"entity": {
"reference": "FRTR1001349991",
"txnNo": "IU201G0279816077",
"clientTxnNo": "1000",
"status": "TRANSACTION_ING"
}
}
Response Body
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | GET_TRANSACTION_STATUS_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
txnNo | String | NextPls订单唯一编号 | |
clientTxnNo | String | 客户方订单唯一编号 | |
reference | String | 现金到账的领取码 | |
status | String | 订单状态 | |
errorCode | String | 业务错误码 | |
errorMsg | String | 业务错误信息 |
3.7.BankAccountNumberAnalysis
收款银行卡号解析提取接口:
仅适用于汇入日本的 收款银行名称是邮储银行(YUCHO-ゆうちょ銀行)通过传送全卡号解析提供的口座番号和支店号,再调3.5.DoTransaction接口下单使用;
使用注意事项:
依据当地监管要求,启用时在汇款人页面前端需同时按照《汇入日本-邮储银行解析接口使用指导手册》;
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 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":"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://staging.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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | BANK_ACCOUNT_NUMBER_ANALYSIS | M | |
entity | Object | 客户方请求参数 | M | |
payOutCountry | String(20) | 到账国家 默认JPN | O | |
beneficiaryBankCode | String(20) | 收款机构编号,默认10121195 JAPAN POST BANK | O | |
beneficiaryFullBankAccountNumber | String(30) | 收款银行全卡号:格式要求【”5位数字“-”5~8位数字“】或【“5位数字”-“1位数字”-“5~8位数字”】 | M |
Response Body:
{
"apiName": "BANK_ACCOUNT_NUMBER_ANALYSIS_R",
"code": "200",
"msg": "success",
"entity": {
"beneficiaryFullBankAccountNumber": "12345-2-01234567",
"beneficiaryBranchCode": "238",
"beneficiaryBankAccountNumber": "0123456"
}
}
Response Body
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | BANK_ACCOUNT_NUMBER_ANALYSIS_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
beneficiaryFullBankAccountNumber | String | 原银行账户全卡号 | |
beneficiaryBranchCode | String | 解析后的3位支店号 | |
beneficiaryBankAccountNumber | String | 解析后的7位口座番号 |
3.8.AddAttachment
附件上传接口:添加一个附件至某笔订单
使用条件:依据准入时申请的开通目标国的合规对交易材料的准入要求上传提供;上传附件支持类型:图片类型(如jpg/png),文件类型(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.1Request Body (NON-SDK)
参数 | 类型 | 描述 | O/M |
---|---|---|---|
tnxNo | String(20) | 订单号(订单号和商户订单号必须传一个) | C |
clientTxnNo | String(20) | 商户订单号 (订单号和商户订单号必须传一个) | C |
fileName | String(30) | 文件名称 | M |
fileType | String(30) | 文件类型 | M |
file | File | 文件信息 | M |
note | String | 备注 | O |
3.8.2.2Request Body (SDK)
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | ADD_ATTACHMENT | M | |
entity | Object | 客户方请求参数 | M | |
tnxNo | String(20) | 订单号(订单号和商户订单号必须传一个) | C | |
clientTxnNo | String(20) | 商户订单号 (订单号和商户订单号必须传一个) | C | |
fileName | String(30) | 文件类型 | M | |
fileType | String(30) | 文件类型 | M | |
fileBase64 | String | 文件信息 | M | |
note | String | 备注 | 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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | ADD_ATTACHMENT_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
txnNo | String | 订单号 | |
clientTxnNo | String | 商户订单号 | |
fileName | String | 文件名称 | |
fileType | String | 文件类型 | |
note | String | 备注 |
3.9.downloadProof
汇款凭证下载接口
适用于下载交易成功的订单汇款凭证
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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | DOWNLOAD_PROOF | M | |
entity | Object | 客户方请求参数 | M | |
txnNo | String(32) | 订单号 | M | |
type | String(16) | 当transaction为C2B时,type为STUDY,其它都为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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | DOWNLOAD_PROOF_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
txnNo | String | 订单号 | |
type | String | 汇款类型 | |
url | String | 汇款链接(有效期1个小时,过期后需重新下载) |
基础信息
4.1.国家/地区&币种代码
获取指定国家对应的国家编码及收款目标币种
三位字母 | 国家或地区(ISO 英文用名) | 惯用名 | 目标币种 |
---|---|---|---|
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.收款方式
Code | 全称 | 描述 |
---|---|---|
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.交易类型
交易类型 | 描述 |
---|---|
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.订单状态
Code | Status_Description_CN | |
---|---|---|
INIT | 订单初始化 | 初始化订单 |
HOLD | 订单锁定 | 订单处理锁定 |
TRANSACTION_SUCCESS | 交易成功 | 订单已经成功处理完毕(订单最终状态) |
TRANSACTION_CLOSED | 交易关闭 | 订单被强制关闭(订单最终状态) |
INVALID | 订单无效 | 订单参数异常等原因导致的订单无效 |
TRANSACTION_APPLY | 交易已申请 | 完成前置效验后,开始向渠道方请求成功后 |
TRANSACTION_SUBMITTED | 交易已受理 | 订单已提交至渠道清结算 |
TRANSACTION_AVAILABLE | 交易已可提款 | CASH现金到账方式下,交易处理成功等待对方提款的状态 |
TRANSACTION_CHECK | 订单复核 | 可疑重复下单、风控异常等 的人工介入复核 |
TRANSACTION_PROCESSING | 汇款处理中(人工介入) | 订单处于人工处理阶段 |
TRANSACTION_CANCELING | 交易取消处理中(人工介入) | 订单处于取消/退款的处理流程中 |
TRANSACTION_REFUND | 交易退款 | Nextpls退还资金到商户余额,最终结果状态(订单最终状态) |
TRANSACTION_FAILED | 交易失败 | 向渠道方下单失败等系统自动处理时的失败,最终结果状态(订单最终状态) |
4.5 传参说明
在下面的文档中缩写值的定义
参数 | 类型 | 描述 |
---|---|---|
M | string | 必填字段 |
O | string | 选填字段 |
C | string | 有前置条件的选填或必填字段 |
错误信息
5.1.HTTP Error Codes
这些错误编码将在API的返回体中显示
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 | 商户结算账户余额不足 |
1001 | 渠道维护中,暂不可用 |
1002 | 汇款币种错误 |
1003 | 汇款金额错误 |
1004 | 汇款金额需大于最低金额 |
1005 | 交易超过限额(单笔/单月) |
1006 | 订单超过锁汇时间 |
1007 | 收款行不支持 |
1008 | 渠道处理失败 |
1009 | 重复交易 |
1010 | 请求交易过频 |
1011 | 交易被取消 |
1012 | 必填字段缺少 |
1013 | 字段类型不匹配 |
1014 | 字段长度不匹配 |
1015 | 汇款人国籍缺少 |
1016 | 汇款人证件类型缺少 |
1017 | 汇款人证件号码缺少 |
1018 | 汇款人生日缺少 |
1019 | 汇款人地址要素缺少 |
1020 | 收款人证件号码缺少 |
1021 | 收款人邮箱缺少 |
1022 | 收款人账号缺少 |
1023 | 不支持的BankCode |
1024 | 汇款方姓名错误 |
1025 | 汇款方地址错误 |
1026 | 汇款方证件类型错误 |
1027 | 汇款方生日错误 |
1028 | 汇款方国籍错误 |
1029 | 汇款目的错误 |
1030 | 汇款方职业错误 |
1031 | 汇款方收入来源错误 |
1032 | 收款方姓名错误 |
1033 | 收款方账号姓名不匹配 |
1034 | 收款方地址错误 |
1035 | 收/汇款方性别错误 |
1036 | 收款方证件信息错误 |
1037 | 收款方生日错误 |
1038 | 收款方国籍错误 |
1039 | 收款方职业错误 |
1040 | 收款方账号错误 |
1041 | 收款方账号验证失败 |
1042 | 收款方账号被冻结/无效 |
1043 | 收汇款人关系错误 |
1044 | 收款方本地路由号错误 |
1045 | 收款人邮箱错误 |
1046 | 请求参数无效 |
1047 | 系统原因 |
1048 | 系统繁忙,请重新尝试 |
1049 | 命中风控/制裁名单 |
1050 | 未经授权的操作拒绝 |
1051 | 请求信息已存在 |
1052 | 收款人附言错误 |
1053 | 收款方姓名格式错误(如汇入香港Lastname后尝试加空格) |
附录
6.1.美国州列表
缩写 | 州名原名 | 州名中译 | 首府中译 | 首府原文 |
---|---|---|---|---|
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.香港地区银行列表
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.欧洲支持国列表
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 | SEPA-48小时返回失败 |
BGR | 保加利亚 | Bulgaria | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
HRV | 克罗地亚 | Croatia | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
EST | 爱沙尼亚 | Estonia | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
LVA | 拉脱维亚 | Latvia | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
LIE | 列支敦士登 | Liechtenstein | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
LTU | 立陶宛 | Lithuania | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
MLT | 马耳他 | Malta | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
MCO | 摩纳哥 | Monaco | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
SMR | 圣马力诺 | San Marino | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
VAT | 梵蒂冈 | Vatican City | Sepa:T+1 - 3pm GMT cut-off, no processing over the weekend or bank holidays | SEPA-48小时返回失败 |
UK | 英国 | United Kingdom | Faster payment-Success in 2 hours |
6.4.证件类型
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.收汇款人关系
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.收入来源
Code | Description_EN | Description_CN |
---|---|---|
SALARY | Salary from Employment | 雇佣工资 |
BUSINESS | Own Business | 经商 |
LOANS | Loans | 贷款 |
SAVINGS | Savings | 储蓄 |
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.汇款目的
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.职业
6.8.1.通用职业枚举
备注:适用于汇入中国的2C交易类型下的职业
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.汇入中国职业枚举
备注:适用于汇入中国的2B交易类型下的职业
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.目标国家支持银行(Bank Code)
目标国家支持银行列表
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 | 客户方请求参数 | M | |
countryCode | String(3) | 到账国家 | 0 | |
bankCode | String | 银行编码 | 0 | |
mode | String | 到账方式 | 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
参数 | 类型 | 描述 | |
---|---|---|---|
apiName | String | GET_BANK_NETWORK_LIST_R | |
code | String | 返回码 | |
msg | String | 返回消息 | |
entity | Object | NextPls返回结果 | |
countryCode | String | 国家编码 | |
bankCode | String | 银行编码 用于 3.4.DoTransaction beneficiaryBankCode映射获取 | |
bankName | String | 银行名称 | |
mode | String | 支持类型 | |
branchAddr | String | 分行地址 |
6.10.各国本地路由号
即对应汇入国 beneficiaryRoutingCode 字段取值来源说明
6.10.1.澳大利亚
BSB
BSB (Bank-State-Branch) 号码是一个6位数字代码,用于确定澳大利亚本地付款的收款银行和分行,我们需要此代码才能完成本地转账。BSB 号码由银行代码(前两位),省份代码(第三位)和分行代码(后三位)组成。 您可以在银行官网获取BSB号码,收款行信息中会包含该银行的BSB号码。以下提供了澳大利亚四大银行网站的链接供您参考。
Commonwealth Bank of Australia
BPAY
BPAY是澳大利亚的一种电子账单支付系统,可以通过金融机构的在线平台,移动或固定电话银行向注册BPAY账单的组织支付款项。我们可以通过Bpay为学生支付学费,通过Bpay付款您需要提供收款行的biller code和reference number,biller code是收款机构特有的编码,reference number则是学生的学号。
样例:
6.10.2.美国
ABA
ABA路由号码是由美国银行家协会(ABA)分配给金融机构的9位数识别号码, 该号码标识了支付的金融机构。 路由号码可称为检查路由号码,ABA号码或路由转接号码(RTN)。 路由号码可能会有所不同,具体取决于收款帐户的开启状态和正在进行的交易类型。 您可以在支票上找到银行的ABA号码,或者您可以通过银行官网查找。以下提供了美国银行网站的链接供您参考。
6.10.3.英国
Sort code
Sort code由六位数字组成,通常格式化为三对数字,例如12-34-56,它可以用于标识银行和账户所在的分支机构。 在某些情况下,排序代码的第一个数字代表银行本身,而在其他情况下,前两个数字代表银行。您可以在银行卡下方找到sort code,或联系收款银行获取。
【英国的IBAN号拆分成 sort code 和BankAccountNumber规则】
6.10.4.新加坡
银行代码
新加坡银行代码是一个七位数的代码用于识别新加坡的银行,其中包含4位银行代码和3位分行代码。您可以在以下链接中查看我们支持的银行列表,另外您可以在银行官网上查询到银行代码和支行代码。
6.10.5.香港
银行代码
香港银行代码是一个用于定位香港银行的三位数字, 用于香港本地的付款,您可以在以下链接中找到您收款行的银行代码。您可以将分行代码填写在账户号前,以更精确地定位您的收款银行。
6.10.6.加拿大
路由号码
加拿大路由号码是用于加拿大本地支付的路由编码,通常有两种格式应用于不同的场景:电子转账路由编码和MICR路由编码。电子转账(EFT)路由编码通常以0为开头,由9位数字组成 (0YYYXXXXX),该路由编码通常用于线上电子转账。 MICR路由编码通常由8位数字组成并且在第五位和第六位中有破折号链接 (XXXXX-YYY),该路由编码通常用于支票转账。两种格式的路由编码都由5位分支机构代码(XXXXX)和3位银行代码组成(YYY)。路由编码可以通过网上银行和支票上获取。
样例:
Bill payment
有些银行也叫PayBills,这个功能主要是日常支付账单,比如支付电话卡账单、信用卡账单、学费、水电气账单等。买单的流程是:
搜索收款人(收款人)添加账号-输入支付金额-一支付完成。例如,BillPayment用于支付多伦多大学的学费。
账单支付不是实时完成的,一般是2-3个工作日,收款人会显示过账。
E-Transfer
在加拿大,电子转账-简称EMT(Email Money Transfer)是一种安全便捷的电子汇款方式。对于个人和企业来说,这是一个很受欢迎的选择,可以互相支付,分摊账单,并作为礼物送钱。电子转账是通过加拿大金融机构Interac处理的,Interac连接了参与的银行和信用合作社。
要发送电子转账,您需要知道收件人的电子邮件地址或电话号码以及他们的银行账户信息。你也可以在不知道收款人银行账户信息的情况下进行电子转账,但他们需要创建一个Interac电子转账账户来接收这笔钱。
要接收电子转账,您需要在您的银行或信用合作社创建一个Interac电子转账账户。一旦你有了账户,当有人给你汇款时,你就会收到通知。然后你可以接受这笔钱,并将其存入你的银行账户。
以下是使用电子转账的一些好处:
它又快又方便。电子转账可以即时发送和接收。
它是安全的。电子转账由Interac的安全网上银行平台保护。
它是免费的或低成本的。大多数银行和信用合作社不收取电子转账的费用。
6.10.7.欧洲
IBAN
IBAN是由欧洲银行标准委员会( European Committee for Banking Standards,简称 ECBS)按照其标准制定的一个银行帐户号码。参加ECBS的会员国的银行帐户号码都有一个对应的IBAN号码。可以联系你的收款行获取IBAN号码。IBAN号码最多是34位字符, 包括国别代码+银行代码+地区+账户人账号+校验码。您可通过银行官网获取到IBAN号码。
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一般用于发国际电汇,信用证电报,可定位世界各地的大部分银行。通常由银行代码(四位),国家代码(两位),地区代码(两位)以及分支机构代码(三位)组成。 您可以通过以下链接查询您收款行的SWIFT code,或者联系银行获取。
6.11.附加字段键值对枚举
extendInfo
Key | Value |
---|---|
txnOriginCurrency | 该笔订单的原始币种 |
txnOriginAmount | 该笔订单的原始金额 |
txnOriginExchangeRate | 该笔订单的原始汇率 |
remitterWebsite | 汇款人公司网址 |
6.12.墨西哥/巴西支持汇出国列表
使用说明:适用于PayOutCountry 是MEX/BRA时,可支持的PayInCountry只支持如下国36国;并且remitterAddress3必填传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.墨西哥/巴西州地址列表
使用说明:适用于PayOutCountry 是MEX/BRA时,Destination_State的beneficiaryAddress3 必填传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.上传文件的枚举
备注:适用于上传文件中的fileType字段
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 | 未知 |
回调
在处理传输订单时,状态的最终状态将被实时通知到所提供的回调URL(如果提供的话)。
合作伙伴必须实现此端点以接收这些状态更改。端点应该期待一个包含以JSON表示的事务对象的HTTP POST请求。
在成功接收到数据后,回调端点应该使用HTTP 2XX进行响应。目前这个回调通知只会发送一次。
目前会通知的状态有: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
参数 | 类型 | 描述 | O/M | |
---|---|---|---|---|
apiName | String | 和下面的订单状态一致 | M | |
entity | Object | 回调通知参数 | M | |
txnNo | String | 交易编号 | M | |
clientTxnNo | String(20) | 客户方唯一编号 | M | |
payInCurrency | String(3) | 汇款(源)币种,ISO 4217格式 | M | |
payInAmount | String(18) | 汇款(源)金额 | M | |
payOutCurrency | String(3) | 到账(目标)币种,ISO 4217格式 | M | |
payOutAmount | String(18) | 到账(目标)金额 | M | |
commission | String | 手续费 | M | |
commissionCurrency | String | 手续费币种 | M | |
errorCode | String | 业务错误码 | M | |
errorMsg | String | 业务错误信息 | M | |
status | String | 订单状态 | M | |
createTime | String | 创建时间 | M | |
finishTime | String | 完结时间 | M | |
failedTime | String | 失败时间 | M |