# API文档 2.0 (Current)

# 概览

TripLink API全部基于HTTPS协议,接入方需要按照API说明通过POST方法调用,详见API列表

所有API的请求体和响应体都是JSON格式,所有字符都使用UTF-8编码。接入方需要加入请求头Content-Type: application/json

所有API的请求和响应都包含一些公共参数,分别位于请求头和响应头,详见公共参数

所有API的请求和响应都进行了加密签名,详见加密机制签名机制

环境 地址
测试 https://vcc-compass-fat.ctripqa.com/compass/api
生产(海外) https://compass.triplinkintl.com/compass/api

注意

请直接使用域名地址访问,不要设置IP白名单。 compass.triplinkintl.com域名是部署在海外的,为了您们能更稳定的使用,我们建议贵司能测一下我们服务间的网速。如果网速存在较慢或不稳定情况我们建议贵司能配置下海外代理,加速请求。

# 公共参数

# 请求头

名称 必填 描述 备注 示例值
customerId Y 客户ID 预先配置。 ASR3F1B4Z5
service Y API名称 详见API列表 createCard
version Y API版本 当前版本2.0 2.0
requestId Y 请求流水号 每个请求唯一,建议使用UUID 472f37e3-a803-47ed-b9b6-32632895b466
timestamp Y 请求时间 UNIX时间戳(毫秒)。 1642747436113
sign Y 请求数据签名 详见签名机制 +Ue0BiWsCOxbYD39Ldd(部分数据)

# 响应头

名称 描述 备注 示例值
customerId 客户ID 请求头原样返回。 ASR3F1B4Z5
service API名称 请求头原样返回。 createCard
version API版本 请求头原样返回。 2.0
requestId 请求流水号 请求头原样返回。 472f37e3-a803-47ed-b9b6-32632895b466
timestamp 响应时间 UNIX时间戳(毫秒)。 1642747437393
code 响应码 枚举值,3位数字,详见响应码下拉框。 200(非200表示API调用失败)
message 响应码详情 详见响应码下拉框。 succeed
sign 响应数据签名 详见签名机制 WO8waUZ30bYlKp/+s9m(部分数据)
响应码
code message 备注
200 succeed 成功。
400 payload decrypt failed 无法解密数据。
403 the ip is not whitelisted 请求IP不在白名单。
405 unsupported method 请求方法不支持。(仅支持POST
406 too many requests 请求过于频繁。
407 verify sign failed 无法验证签名。
417 the parameter is null or invalid 请求头必填参数为空。
500 (不固定) 系统错误。

# API列表

名称 方法 请求头service参数
创建卡 POST createCard
修改卡 POST updateCard
充值卡 POST rechargeCard
提现卡 POST withdrawCard
锁定卡 POST suspendCard
解锁卡 POST unSuspendCard
注销卡 POST closeCard
查询卡 POST queryCardDetail
查询账户额度 POST queryCustomerCredit
查询授权交易 POST queryAuthTransactionByPage
查询清算交易 POST settlementTransactionQuery
发起账户提现 POST payoutCreate
查询账户提现 POST payoutQuery
查询汇率 POST fxQuote
发起换汇订单 POST fxCreate
查询换汇订单 POST fxQuery

# 加密机制

为保证数据的安全性,TripLink会对每个请求和响应进行加密。

接入方与TripLink需使用对称加密算法AES/ECB/PKCS5Padding,对请求体响应体进行加密与解密,结果采用Base64 编码。

TripLink需要接入方提前提供128AES密钥(Base64 编码格式),参考准备工作

# 请求体

原始请求体各字段含义详见下方各API说明。

接入方:对原始请求体先使用AES密钥加密,再进行Base64编码。结果作为实际请求体payload字段的值。发送实际请求体

TripLink:对收到的实际请求体payload字段的值先进行Base64解码,再使用AES密钥解密。结果即为原始请求体

    # 响应体

    原始响应体各字段含义详见下方各API说明。

    TripLink:对原始响应体先使用AES密钥加密,再进行Base64编码。结果作为实际响应体payload字段的值。发送实际响应体

    接入方:对收到的实际响应体payload字段的值先进行Base64解码,再使用AES密钥解密。结果即为原始响应体

      Java工具类示例
      import javax.crypto.Cipher;
      import javax.crypto.SecretKey;
      import javax.crypto.spec.SecretKeySpec;
      import java.util.Base64;
      
      import static java.nio.charset.StandardCharsets.UTF_8;
      
      public class AesUtils {
          
          private static final Base64.Encoder ENCODER = Base64.getEncoder();
          private static final Base64.Decoder DECODER = Base64.getDecoder();
      
          public static String aesEncrypt(SecretKey key, String plaintext) throws Exception {
              Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
              cipher.init(Cipher.ENCRYPT_MODE, key);
              byte[] cipherBytes = cipher.doFinal(plaintext.getBytes(UTF_8));
              return new String(ENCODER.encode(cipherBytes), UTF_8);
          }
      
          public static String aesDecrypt(SecretKey key, String ciphertext) throws Exception {
              Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
              cipher.init(Cipher.DECRYPT_MODE, key);
              byte[] cipherBytes = DECODER.decode(ciphertext.getBytes(UTF_8));
              return new String(cipher.doFinal(cipherBytes), UTF_8);
          }
      
          public static SecretKey newAesKey(String keyStr) {
              return new SecretKeySpec(DECODER.decode(keyStr.getBytes(UTF_8)), "AES");
          }
      
          public static String toAesKeyStr(SecretKey key) {
              return new String(ENCODER.encode(key.getEncoded()), UTF_8);
          }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34

      Java 6用户可以考虑使用org.apache.commons.codec.binary.Base64类代替Java 8新增的java.util.Base64

      PHP工具类示例
      <?php declare(strict_types=1);
      
      class AesUtils {
      
          public static function aesEncrypt(string $keyStr, string $plaintext): string {
              return base64_encode(openssl_encrypt($plaintext, 'AES-128-ECB', base64_decode($keyStr), OPENSSL_RAW_DATA));
          }
      
          public static function aesDecrypt(string $keyStr, string $ciphertext): string {
              return openssl_decrypt(base64_decode($ciphertext), 'AES-128-ECB', base64_decode($keyStr), OPENSSL_RAW_DATA);
          }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      # 签名机制

      为保证API的安全调用,TripLink会对每个请求和响应通过签名进行身份验证。

      接入方与TripLink需使用签名算法SHA256withRSA,对请求待签字符串响应待签字符串进行签名,签名结果采用Base64 编码,对应请求头和响应头的sign字段。

      接入方会提前收到TripLink为您分配的2048RSA公钥TBase64 编码格式),同时TripLink需要接入方提前提供2048RSA公钥UBase64 编码格式),参考准备工作

      整个请求与响应流程涉及2RSA密钥:属于TripLink的公钥T私钥T,属于接入方的公钥U私钥U。公钥用于验证签名,私钥用于生成签名。

      # 请求待签字符串

      所有字段按如下顺序依次使用|符号连接。

      customerId|service|version|requestId|timestamp|payload
      
      1

      customerIdserviceversionrequestIdtimestamp来自请求头中对应字段。

      payload来自实际请求体payload字段。

      接入方:对请求待签字符串先使用私钥U生成签名,再进行Base64编码。结果作为请求头sign字段的值。

      TripLink:对收到的请求头sign字段的值先进行Base64解码,再使用公钥U验证签名。

      # 响应待签字符串

      所有字段按如下顺序依次使用|符号连接。

      customerId|service|version|requestId|timestamp|code|message|payload
      
      1

      customerIdserviceversionrequestIdtimestampcodemessage来自响应头中对应字段。

      payload来自实际响应体payload字段。

      TripLink:对响应待签字符串先使用私钥T生成签名,再进行Base64编码。结果作为响应头sign字段的值。

      接入方:对收到的响应头sign字段的值先进行Base64解码,再使用公钥T验证签名。

      Java工具类示例
      import java.security.KeyFactory;
      import java.security.PrivateKey;
      import java.security.PublicKey;
      import java.security.Signature;
      import java.security.spec.PKCS8EncodedKeySpec;
      import java.security.spec.X509EncodedKeySpec;
      import java.util.Base64;
      
      import static java.nio.charset.StandardCharsets.UTF_8;
      
      public class RsaUtils {
          
          private static final Base64.Encoder ENCODER = Base64.getEncoder();
          private static final Base64.Decoder DECODER = Base64.getDecoder();
      
          public static String rsaSign(PrivateKey privateKey, String content) throws Exception {
              Signature signer = Signature.getInstance("SHA256withRSA");
              signer.initSign(privateKey);
              signer.update(content.getBytes(UTF_8));
              return new String(ENCODER.encode(signer.sign()), UTF_8);
          }
      
          public static boolean rsaVerify(PublicKey publicKey, String content, String signature) throws Exception {
              Signature signer = Signature.getInstance("SHA256withRSA");
              signer.initVerify(publicKey);
              signer.update(content.getBytes(UTF_8));
              return signer.verify(DECODER.decode(signature.getBytes(UTF_8)));
          }
      
          public static PrivateKey newRsaPrivateKey(String privateKeyStr) throws Exception {
              byte[] bytes = DECODER.decode(privateKeyStr.getBytes(UTF_8));
              KeyFactory keyFactory = KeyFactory.getInstance("RSA");
              return keyFactory.generatePrivate(new PKCS8EncodedKeySpec(bytes));
          }
      
          public static PublicKey newRsaPublicKey(String publicKeyStr) throws Exception {
              byte[] bytes = DECODER.decode(publicKeyStr.getBytes(UTF_8));
              KeyFactory keyFactory = KeyFactory.getInstance("RSA");
              return keyFactory.generatePublic(new X509EncodedKeySpec(bytes));
          }
      
          public static String toRsaPrivateKeyStr(PrivateKey privateKey) {
              return new String(ENCODER.encode(privateKey.getEncoded()), UTF_8);
          }
      
          public static String toRsaPublicKeyStr(PublicKey publicKey) {
              return new String(ENCODER.encode(publicKey.getEncoded()), UTF_8);
          }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49

      Java 6用户可以考虑使用org.apache.commons.codec.binary.Base64类代替Java 8新增的java.util.Base64

      PHP工具类示例
      <?php declare(strict_types=1);
      
      class RsaUtils {
      
          public static function rsaSign(string $privateKeyStr, string $content): string {
              openssl_sign($content, $signature, self::pemFormat($privateKeyStr, 'PRIVATE KEY'), OPENSSL_ALGO_SHA256);
              return base64_encode($signature);
          }
      
          public static function rsaVerify(string $publicKeyStr, string $content, string $signature): bool {
              return openssl_verify($content, base64_decode($signature), self::pemFormat($publicKeyStr, 'PUBLIC KEY'), OPENSSL_ALGO_SHA256) === 1;
          }
      
          private static function pemFormat(string $keyStr, string $label): string {
              return "-----BEGIN {$label}-----\n" . chunk_split($keyStr, 64) . "-----END {$label}-----\n";
          }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17

      # 创建卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardCurrencyCode String N 卡币种 默认与结算币种相同。
      ISO 4217货币编号,3位数字。
      参考ISO 4217
      settlementCurrencyCode String Y 结算币种 ISO 4217货币编号,3位数字。
      exchangeCurrencyCode String N 卖出币种 ISO 4217货币编号,3位数字。卡产品为C05时生效且必填。
      刷卡授权消费时自动将卖出币种兑换为结算币种。
      activeDate String Y 生效日期 格式 yyyy-MM-dd
      inactiveDate String Y 失效日期 格式 yyyy-MM-dd
      cardLimit Number Y 额度 小数,对应卡币种。
      minAuthAmount Number Y 单次授权金额下限 小数,对应卡币种。
      (预付费卡,此字段不生效)
      maxAuthAmount Number Y 单次授权金额上限 小数,对应卡币种。
      (预付费卡,此字段不生效)
      maxAuthTimes Number Y 授权次数上限 整数。1:单次卡,-1:不限次数。
      cardCloseUsage Number N 自动注销百分比 整数,范围0-100,默认0
      当已清算金额占额度比大于等于此值,卡会被自动注销。
      特殊值0:卡片不会自动注销。
      (预付费卡,此字段不生效)
      supportedMccGroup String Y 接受的MCC组 接受的商户类别组名,由TripLink定义。
      非此商户类别组请求的交易会被拒绝。
      supportedMid String N 接受的商户ID 非此商户请求的交易会被拒绝。
      supportedAcquirerId String N 接受的收单行ID 非此收单行请求的交易会被拒绝。
      multipleCurrencyCard Boolean N 是否允许非卡币种交易 默认true
      cvv2ForceCheck Boolean N 是否验证CVV2 默认false
      allow3ds Boolean N 是否接受3DS交易 默认true
      (仅香港万事达卡生效)
      cardProductCode String Y 卡产品 枚举值,详见卡分类层次下拉框。
      cardType String Y 卡类型 枚举值,详见卡分类层次下拉框。
      cardLabel String Y 卡组织 枚举值,详见卡分类层次下拉框。
      cardBin String N 发卡机构识别号 可指定开卡卡BIN段,请联系TripLink提供。
      quoteId String N 汇率ID 查询汇率 返回的汇率ID。
      若有效则以此汇率兑换,若无效则以实时汇率兑换。
      (仅卡产品为 C05 时生效)
      timeZone string N 卡时区 卡生效与失效日期时区,格式举例:
      中国标准时间 GMT+08:00
      北美东部标准时间 GMT-05:00
      默认值可在商户系统/设置/全局参数处配置。
      userReferenceMap Object N 用户自定义字段 String键值对,共20个键可选。
      范围useRef1Txt-useRef20Txt

      TripLink仅会保存和展示用户自定义字段,没有业务逻辑与此相关。

      卡分类层次
      名称 描述 备注
      cardProductCode 卡产品 枚举值,C01C02C03C04C05
      cardType 卡类型 枚举值,详见卡分类层次详情下拉框。
      cardLabel 卡组织 枚举值,MasterCardVISA
      卡分类层次详情
      卡产品 卡账户 发卡地区 卡类型 卡组织
      C01 贷记 中国香港 MCO
      GWTTP
      GWTTP-MBA
      GWTTP-MBG
      GWTTP-MBH
      GWTTP-MBI
      GWTTP-MBJ
      MasterCard
      C01 贷记 美国 USDVCC MasterCard
      VISA
      C02 借记 中国香港 MCO
      GWTTP
      GWTTP-MBA
      GWTTP-MBG
      GWTTP-MBH
      GWTTP-MBI
      GWTTP-MBJ
      MasterCard
      C02 借记 新加坡 TAE
      B2B
      VISA
      C03 预付费 美国 USDVCC MasterCard
      VISA
      C04 贷记 新加坡 TAEB2B VISA
      C05 借记(换汇) 中国香港 MCO
      GWTTP
      GWTTP-MBA
      GWTTP-MBG
      GWTTP-MBH
      GWTTP-MBI
      GWTTP-MBJ
      MasterCard
      C05 借记(换汇) 新加坡 TAE
      B2B
      VISA
      请求体示例
      {
        "requestId": "1ac60d08-0e15-47da-a341-7287dd46ff39",
        "customerId": "CSR47284A93E35E4",
        "cardCurrencyCode": "840",
        "settlementCurrencyCode": "840",
        "activeDate": "2022-01-01",
        "inactiveDate": "2024-06-01",
        "cardLimit": 1000.12,
        "minAuthAmount": 3.45,
        "maxAuthAmount": 500.67,
        "maxAuthTimes": -1,
        "cardCloseUsage": 40,
        "supportedMccGroup": "ecom",
        "multipleCurrencyCard": true,
        "cvv2ForceCheck": true,
        "cardProductCode": "C02",
        "cardBin":"522981",
        "cardType": "GWTTP",
        "cardLabel": "MasterCard",
        "userReferenceMap": {
          "useRef1Txt": "anything"
        }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      cardLogId String 卡ID TripLink专用卡标识。
      cardNum String 卡号 16位卡号。
      cardExpirationDate String 有效期 格式 yyMM
      cvv2 String 卡CVV2 安全码。
      cardType String 卡品牌
      cardLabel String 卡组织
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      100001 Reduplicative requestid requestId重复。
      200002 Both MCC, MCC groups and [acquirerId,merchantId] are all empty supportedMccGroup与(supportedMidsupportedAccquirerId)都为空。
      200003 Customer info not find 客户信息不存在。
      200007 Global parameter not find 客户全局配置不存在。
      200008 InactiveDate must be greater than activeDate 不可交易日必须晚于可交易日。
      200013 Not find the mapping between the cardCurrency and settlementCurrency 结算账户不存在。
      200014 AcquirerId/mid must not be empty 收单行ID与商户ID必须同时存在。
      200022 Not find active pan number config 卡号生成失败。
      200029 Card exists pending request 其他操作执行中。
      200036 card bin not support 卡品牌不支持。
      200037 InactiveDate must submit 卡不可交易日生成失败。
      200038 cardCloseUsage not be null cardCloseUsage格式不正确。
      200040 Invalid global parameter (indate) 卡有效期配置不存在。
      200043 mcc group is empty supportedMccGroup为空。
      200044 mcc group all is not supported supportedMccGroup不可为all
      200048 (不固定) 发卡行处理失败。
      200060 (不固定) 发卡行请求参数错误。
      300004 mcc link channel group is empty 发卡行MCC组为空。
      300005 Trading is risky 高风险请求。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "cardLogId": "9448b6a7b3bcb22f99c1bedd246aba092c7932fd5e7f3042607bf58bc7cc3d83",
        "cardNum": "5229811460053354",
        "cardExpirationDate": "2406",
        "cvv2": "123",
        "cardType": "GWTTP",
        "cardLabel": "MasterCard"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      # SDK示例

      Java SDK
      public void testCreateCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardCreateRequest request = new CardCreateRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardCurrencyCode("840");
          request.setSettlementCurrencyCode("840");
          request.setActiveDate("2022-01-01");
          request.setInactiveDate("2024-06-01");
          request.setCardLimit(BigDecimal.valueOf(1000.12));
          request.setMinAuthAmount(BigDecimal.valueOf(3.45));
          request.setMaxAuthAmount(BigDecimal.valueOf(500.67));
          request.setMaxAuthTimes(-1);
          request.setCardCloseUsage(40);
          request.setSupportedMccGroup("ecom");
          request.setMultipleCurrencyCard(true);
          request.setCvv2ForceCheck(true);
          request.setCardBin("522981");
          request.setCardType("GWTTP");
          request.setCardLabel("MasterCard");
          Map<String, String> userReference = new HashMap<>();
          userReference.put("useRef1Txt", "anything");
          request.setUserReferenceMap(userReference);
      
          CardCreateResponse response = tripLinkApi.create(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      PHP SDK
      public function testCreateCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new CreateCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardCurrencyCode('840');
          $request->setSettlementCurrencyCode('840');
          $request->setActiveDate('2022-01-01');
          $request->setInactiveDate('2024-06-01');
          $request->setCardLimit(1000.12);
          $request->setMinAuthAmount(3.45);
          $request->setMaxAuthAmount(500.67);
          $request->setMaxAuthTimes(-1);
          $request->setCardCloseUsage(40);
          $request->setSupportedMccGroup('ecom');
          $request->setMultipleCurrencyCard(true);
          $request->setCvv2ForceCheck(true);
          $request->setCardBin('522981');
          $request->setCardType('GWTTP');
          $request->setCardLabel('MasterCard');
          $userReference = new UserReference();
          $userReference->setUseRef1Txt('anything');
          $request->setUserReferenceMap($userReference);
      
          $response = $tripLinkAgent->createCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 修改卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      activeDate String N 生效日期 格式 yyyy-MM-dd
      inactiveDate String N 失效日期 格式 yyyy-MM-dd
      cardLimit Number N 额度 小数,对应卡币种。
      (预付费卡,此字段不生效)
      minAuthAmount Number N 单次授权金额下限 小数,对应卡币种。
      (预付费卡,此字段不生效)
      maxAuthAmount Number N 单次授权金额上限 小数,对应卡币种。
      (预付费卡,此字段不生效)
      cardCloseUsage Number N 自动注销百分比 整数,范围0-100,默认0
      当已清算金额占额度比大于等于此值,卡会被自动注销。
      特殊值0:卡片不会自动注销。
      (预付费卡,此字段不生效)
      supportedMccGroup String N 接受的MCC组 接受的商户类别组名,由TripLink定义。
      非此商户类别组请求的交易会被拒绝。
      supportedMid String N 接受的商户ID 非此商户请求的交易会被拒绝。
      supportedAcquirerId String N 接受的收单行ID 非此收单行请求的交易会被拒绝。
      multipleCurrencyCard Boolean N 是否允许非卡币种交易
      cvv2ForceCheck Boolean N 是否验证CVV2
      allow3ds Boolean N 是否接受3DS交易 (仅香港万事达卡生效)
      timeZone string N 卡时区 卡生效与失效日期时区,格式举例:
      中国标准时间GMT+08:00
      北美东部标准时间GMT-05:00
      默认值可在商户系统/设置/全局参数处配置。
      userReferenceMap Object N 用户自定义字段 String键值对,共20个键可选。
      范围useRef1Txt-useRef20Txt

      TripLink仅会保存和展示用户自定义字段,没有业务逻辑与此相关。

      请求体示例
      {
        "requestId": "15b77002-748d-4c89-b6a3-1fa0a25adf3b",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "9f289daa62ac6e941f918634de3f91a142eea82c09ac27783ea7c2d9c07f8ec3",
        "cardLimit": 2000.12,
        "multipleCurrencyCard": false,
        "cvv2ForceCheck": false
      }
      
      1
      2
      3
      4
      5
      6
      7
      8

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      cardLogId String 卡ID TripLink专用卡标识。
      cardNum String 卡号 16位卡号。
      cardExpirationDate String 卡有效期 格式yyMM
      cvv2 String 卡CVV2 安全码。
      userReferenceMap Object 用户自定义字段 String键值对,共20个键可选。
      范围useRef1Txt-useRef20Txt

      TripLink仅会保存和展示用户自定义字段,没有业务逻辑与此相关。

      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      100001 Reduplicative requestid requestId重复。
      200001 ActiveDate must be greater than current date(不固定) 卡有效期错误。
      200003 Customer info not find 客户信息不存在。
      200007 Global parameter not find 客户全局配置不存在。
      200009 Effective mccGroup not find 有效MCC组不存在。
      200014 AcquirerId/mid must not be empty 收单行ID与商户ID必须同时存在。
      200015 Not find card 卡不存在。
      200016 Card status is clop or clos 卡已注销。
      200019 Update card limit is less than the amount of used card 更新额度小于已用额度。
      200029 Card exists pending request 其他操作执行中。
      200032 Not find customer global setting 客户全局参数不存在。
      200036 card bin not support 卡品牌不支持。
      200048 (不固定) 发卡行处理失败。
      200060 (不固定) 发卡行请求参数错误。
      300004 mcc link channel group is empty 发卡行MCC组为空。
      300005 Trading is risky 高风险请求。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "cardLogId": "9f289daa62ac6e941f918634de3f91a142eea82c09ac27783ea7c2d9c07f8ec3",
        "cardNum": "5395933355051253",
        "cardExpirationDate": "2406",
        "cvv2": "123",
        "userReferenceMap": {
          "useRef1Txt": "anything"
        }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

      # SDK示例

      Java SDK
      public void testUpdateCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardUpdateRequest request = new CardUpdateRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
          request.setCardLimit(BigDecimal.valueOf(2000.12));
          request.setMultipleCurrencyCard(false);
          request.setCvv2ForceCheck(false);
      
          CardUpdateResponse response = tripLinkApi.update(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      PHP SDK
      public function testUpdateCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new UpdateCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
          $request->setCardLimit(2000.12);
          $request->setMultipleCurrencyCard(false);
          $request->setCvv2ForceCheck(false);
      
          $response = $tripLinkAgent->updateCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 充值卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      rechargeAmount Number Y 充值金额 小数,对应卡币种。
      请求体示例
      {
        "requestId": "9340c297-e8b8-4148-b0b7-3d8aa5fcb487",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "9261267e66b808e9a2f62fe54e516192677236b943aa2dee1836284b369768d7",
        "rechargeAmount": 100.12
      }
      
      1
      2
      3
      4
      5
      6

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      200003 Customer info not find 客户信息不存在。
      200015 Not find card 卡不存在。
      200016 Card status is clop or clos 卡已注销。
      300003 Call JPM gateway error 发卡行返回错误。
      300004 mcc link channel group is empty 发卡行MCC组为空。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success"
      }
      
      1
      2
      3
      4

      # SDK示例

      Java SDK
      public void testRechargeCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardRechargeRequest request = new CardRechargeRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
          request.setRechargeAmount(BigDecimal.valueOf(100.12));
      
          CardRechargeResponse response = tripLinkApi.recharge(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      PHP SDK
      public function testRechargeCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new RechargeCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
          $request->setRechargeAmount(100.12);
      
          $response = $tripLinkAgent->rechargeCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 提现卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      withdrawAmount Number Y 提现金额 小数,对应卡币种。
      请求体示例
      {
        "requestId": "8f26c686-6275-4271-aa6d-a0a6a4df441e",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "9261267e66b808e9a2f62fe54e516192677236b943aa2dee1836284b369768d7",
        "withdrawAmount": 80.12
      }
      
      1
      2
      3
      4
      5
      6

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      200003 Customer info not find 客户信息不存在。
      200015 Not find card 卡不存在。
      200016 Card status is clop or clos 卡已注销。
      200019 Update card limit is less than the amount of used card 更新额度小于已用额度。
      200029 Card exists pending request 其他操作执行中。
      200048 card issuer failed 发卡行返回错误。
      300004 mcc link channel group is empty 发卡行MCC组为空。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success"
      }
      
      1
      2
      3
      4

      # SDK示例

      Java SDK
      public void testWithdrawCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardWithdrawRequest request = new CardWithdrawRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
          request.setWithdrawAmount(BigDecimal.valueOf(80.12));
      
          CardWithdrawResponse response = tripLinkApi.withdraw(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      PHP SDK
      public function testWithdrawCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new WithdrawCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
          $request->setWithdrawAmount(80.12);
      
          $response = $tripLinkAgent->withdrawCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 锁定卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      请求体示例
      {
        "requestId": "7d451d22-fab3-471e-acfa-efd7aa3a1db9",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "f05c9c6670a956150aa346e671d6d9fe757cbe178d555a763631be75e61fee07"
      }
      
      1
      2
      3
      4
      5

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      200003 Customer info not find 客户信息不存在。
      200015 Not find card 卡不存在。
      200016 Card status is clop or clos 卡已注销。
      300006 Not support suspend the card 发卡行不支持锁定卡。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success"
      }
      
      1
      2
      3
      4

      # SDK示例

      Java SDK
      public void testSuspendCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardSuspendRequest request = new CardSuspendRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
      
          CardSuspendResponse response = tripLinkApi.suspend(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      PHP SDK
      public function testSuspendCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new SuspendCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
      
          $response = $tripLinkAgent->suspendCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 解锁卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      请求体示例
      {
        "requestId": "7d451d22-fab3-471e-acfa-efd7aa3a1db9",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "f05c9c6670a956150aa346e671d6d9fe757cbe178d555a763631be75e61fee07"
      }
      
      1
      2
      3
      4
      5

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      200003 Customer info not find 客户信息不存在。
      200015 Not find card 卡不存在。
      200016 Card status is clop or clos 卡已注销。
      300007 Not support unsuspend the card 发卡行不支持解锁卡
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success"
      }
      
      1
      2
      3
      4

      # SDK示例

      Java SDK
      public void testUnsuspendCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardUnsuspendRequest request = new CardUnsuspendRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
      
          CardUnsuspendResponse response = tripLinkApi.unsuspend(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      PHP SDK
      public function testUnsuspendCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new UnsuspendCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
      
          $response = $tripLinkAgent->unsuspendCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 注销卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      请求体示例
      {
        "requestId": "7d451d22-fab3-471e-acfa-efd7aa3a1db9",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "f05c9c6670a956150aa346e671d6d9fe757cbe178d555a763631be75e61fee07"
      }
      
      1
      2
      3
      4
      5

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      200003 Customer info not find 客户信息不存在。
      200015 Not find card 卡不存在。
      200016 Card status is clop or clos 卡已注销。
      200025 card status pre cancel not allow 不允许注销卡。
      200051 card cancel exception 发卡行注销卡失败。
      200053 Incorrect card status 卡不在正常状态。
      300005 Trading is risky 高风险请求。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success"
      }
      
      1
      2
      3
      4

      # SDK示例

      Java SDK
      public void testCloseCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardCancelRequest request = new CardCancelRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
      
          CardCancelResponse response = tripLinkApi.close(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      PHP SDK
      public function testCloseCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new CloseCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
      
          $response = $tripLinkAgent->closeCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询卡

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      请求体示例
      {
        "requestId": "5148d00e-d98f-4ccc-a5ef-acd1ff53d37e",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "0b51f2edf394d3875fa3c284186e5022236a59bc31dda6b3aba7dbe2982bc91a"
      }
      
      1
      2
      3
      4
      5

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      customerId String 客户ID 请求头
      cardLogId String 卡ID TripLink专用卡标识。
      cardCurrencyCode String 卡币种 ISO 4217货币编号,3位数字。
      settlementCurrencyCode String 结算币种 ISO 4217货币编号,3位数字。
      activeDate String 生效日期 格式yyyy-MM-dd
      inactiveDate String 失效日期 格式yyyy-MM-dd
      cardLimit Number 额度 小数,对应卡币种。
      minAuthAmount Number 单次授权金额下限 小数,对应卡币种。
      (预付费卡,此字段不生效)
      maxAuthAmount Number 单次授权金额上限 小数,对应卡币种。
      (预付费卡,此字段不生效)
      maxAuthTimes Number 授权次数上限 整数。1:单次卡,-1:不限次数。
      cardCloseUsage Number 自动注销百分比 整数,范围0-100,默认0
      当已清算金额占额度比大于等于此值,卡会被自动注销。
      特殊值0:卡片不会自动注销。
      (预付费卡,此字段不生效)
      supportedMccGroup String 接受的MCC组 接受的商户类别组名,由TripLink定义。
      非此商户类别组请求的交易会被拒绝。
      supportedMid String 接受的商户ID 非此商户请求的交易会被拒绝。
      supportedAcquirerId String 接受的收单行ID 非此收单行请求的交易会被拒绝。
      multipleCurrencyCard Boolean 是否允许非卡币种交易
      cvv2ForceCheck Boolean 是否验证CVV2
      applyTime String 申请日期 格式yyyy-MM-dd
      status String 卡状态 NORM:正常,SUSP:锁定,CLOP:预销卡,CLOS:销卡。
      cardNum String 卡号 16位卡号。
      cardExpirationDate String 卡有效期 格式yyMM
      cvv2 String 卡CVV2 安全码。
      availableBalance Number 可用余额 小数,对应卡币种。
      authorizeAmount Number 待入账金额 小数,对应卡币种。
      settlementAmount Number 已入账金额 小数,对应卡币种。
      cardLabel String 卡组织 枚举值,范围MasterCardVISA
      cardType String 卡类型 枚举值,范围GWTTPMCOUSDVCC等。
      timeZone string 卡时区 卡生效与失效日期时区,格式举例:
      中国标准时间GMT+08:00
      北美东部标准时间GMT-05:00
      默认值可在商户系统/设置/全局参数处配置。
      userReferenceMap Object 用户自定义字段 String键值对,共20个键可选。
      范围useRef1Txt-useRef20Txt
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect(不固定) 请求参数错误。
      200015 Not find card 卡不存在。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "0b51f2edf394d3875fa3c284186e5022236a59bc31dda6b3aba7dbe2982bc91a",
        "cardCurrencyCode": "840",
        "settlementCurrencyCode": "840",
        "activeDate": "2022-01-01",
        "inactiveDate": "2024-06-01",
        "cardLimit": 1000.12,
        "minAuthAmount": 3.45,
        "maxAuthAmount": 500.67,
        "maxAuthTimes": -1,
        "cardCloseUsage": 40,
        "supportedMccGroup": "ecom",
        "multipleCurrencyCard": true,
        "cvv2ForceCheck": true,
        "applyTime": "2022-02-17",
        "status": "NORM",
        "cardNum": "5395933355052420",
        "cardExpirationDate": "2406",
        "cvv2": "123",
        "availableBalance": 1000.12,
        "authorizeAmount": 0.00,
        "settlementAmount": 0.00,
        "cardType": "GWTTP",
        "cardLabel": "MasterCard",
        "timeZone": "GMT+08:00",
        "userReferenceMap": {
          "useRef1Txt": "anything"
        }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32

      # SDK示例

      Java SDK
      public void testQueryCard() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          CardDetailQueryRequest request = new CardDetailQueryRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
      
          CardDetailQueryResponse response = tripLinkApi.queryCard(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      PHP SDK
      public function testQueryCard(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new QueryCardRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
      
          $response = $tripLinkAgent->queryCard($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询账户额度

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      请求体示例
      {
        "requestId": "3ddf14f6-04b0-4a66-840b-a21cf0c148ee",
        "customerId": "CSR47284A93E35E4"
      }
      
      1
      2
      3
      4

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      customerId String 客户ID 请求头
      list Array 账户信息 详见Account

      Account

      名称 类型 描述 备注
      accountType String 账户类型 CREDIT:贷记账户;DEBIT:借记账户;CCP_ACCT:换汇账户。
      accountCurrency String 账户币种 ISO 4217货币编号,3位数字。
      accountAmount Number 账户额度 仅账户类型为CREDIT时有值。
      小数,对应账户币种。
      remainAccountAmount Number 剩余账户额度 小数,对应账户币种。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 input parameter is incorrect 请求参数错误。
      200007 not find the account credit 未找到账户。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "success",
        "customerId": "CSR47284A93E35E4",
        "list": [
          {
            "accountType": "DEBIT",
            "accountCurrency": "840",
            "remainAccountAmount": 999967.66
          },
          {
            "accountType": "DEBIT",
            "accountCurrency": "978",
            "remainAccountAmount": 999999.99
          }
        ]
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17

      # SDK示例

      Java SDK
      public void testQueryAccount() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          QueryCustomerCreditAmountRequest request = new QueryCustomerCreditAmountRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
      
          QueryCustomerCreditAmountResponse response = tripLinkApi.queryCustomerCreditAmount(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      PHP SDK
      public function testQueryAccount(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new QueryAccountRequest(uniqid(), CUSTOMER_ID);
      
          $response = $tripLinkAgent->queryAccount($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询授权交易

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      orderNo String N 订单号
      transactionStatus String N 交易状态 枚举值:1-交易成功 2-交易失败。
      transactionCode String N 交易类型 枚举值:6810-消费授权 6820-授权查询 6510-退款授权 6930-消费授权冲正 6940-退款授权冲正。
      transactionStartTime String N 起始时间 格式:yyyy-MM-dd HH:mm:ss
      transactionEndTime String N 截止时间 格式:yyyy-MM-dd HH:mm:ss
      pageNo Number N 分页页码 整数,取值范围[1,100],默认值为1
      pageSize Number N 分页条数 整数,取值范围[1,100],默认值为5
      请求体示例
      {
          "requestId":"7fb57ff0-ea70-4099-acf5-eacba55e18ef",
          "customerId":"CSR47284A93E35E4",
          "cardLogId":"c55d99dac26bb334c07879404a93d2c6a96b42f7372f9c04d14034d019203fe4",
          "transactionStartTime":"2022-10-01 03:00:00",
          "transactionEndTime":"2022-10-02 04:00:00",
          "pageNo":1,
          "pageSize":10
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      cardLogId String 卡ID TripLink专用卡标识。
      count Number 交易数量 整数,本次查询返回的交易数据量。
      more Boolean 更多数据 是否还有更多的分页数据 true表示本次请求查询条件下有更多的分页数据。
      transactionData Array 授权交易 详见AuthTransaction
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100007 NOT_FIND_CARD 卡不存在。
      9XXXXX (不固定) 系统错误。

      AuthTransaction

      名称 类型 描述 备注
      requestId String 交易唯一ID 全局唯一。
      cardLogId String 卡ID TripLink专用卡标识。
      transactionId String 交易关联ID 授权交易与对应冲正交易的transactionID相同。
      orderNo String 订单号
      transactionCurrencyCode String 交易币种 ISO 4217货币编号,3位数字。
      transactionAmount Number 交易金额 小数,对应交易币种。
      cardCurrencyCode String 卡币种 ISO 4217货币编号,3位数字。
      cardTransactionAmount Number 卡交易金额 小数,对应卡币种。
      responseCode String 交易响应码 枚举值,4位数字,详见授权响应码下拉框。
      (非0000表示授权拒绝)
      responseDescription String 交易响应码描述 详见授权响应码下拉框。
      approvalCode String 授权码 随机6位字母与数字。
      transactionCode String 交易类型 枚举值,4位数字,详见授权类型下拉框。
      transactionDate String 交易发生时间 格式yyyy-MM-dd HH:mm:ss
      merchantName String 商户名称
      mcc String 商户MCC ISO 18245商户类别,4位数字。
      merchantCountry String 商户所在国家 (未标准化)
      isoMerchantCountryCode String 商户所在国家 ISO 3166-1 alpha-3国家代码,3位字母。
      参考ISO 3166
      (可能为空值)
      merchantCity String 商户所在城市
      merchantId String 商户ID
      acquiringBankId String 收单行ID
      cardInitialBalance Number 卡片期初金额
      cardEndingBalance Number 卡片期末金额
      creditTransactionSign String 贷记交易标记 枚举值,1-贷记交易 0-借记交易
      reversalType String 是否为授权释放交易 授权类型69306940时该字段有意义。
      枚举值,0-授权释放交易 1-非授权释放交易
      授权类型
      messageType messageTypeDescription 描述 交易类别
      6810 Authorization Approval 消费授权 借记交易
      6510 Auth Refund Approval 退款授权 贷记交易
      6930 Authorization Reversal Approval 消费授权冲正 贷记交易
      6940 Auth Refund Reversal Approval 退款授权冲正 借记交易
      6820 Authorization Query 授权查询 借记交易
      授权响应码(6810 消费授权)
      responseCode responseCodeDescription 备注
      0000 Authorization Approval 授权成功。
      1002 High Risk Transaction 高风险的交易。
      1003 Invalid Account 无效账号。
      1101 Abnormal Customer Status 客户状态异常。
      1102 Card canceled 卡片已注销。
      1103 Authorization Amount Error 授权金额错误。
      1104 VAN Amount Limit Error 账户余额不足。
      1105 Invalid Expiry Date 无效的有效期。
      1106 Transaction Count Over Limit 交易次数超过上限。
      1107 Invalid CVV2 无效的CVV2安全码。
      1108 VAN Amount Limit Error 账户余额不足。
      1110 Trans Currency Not Allowed 交易币种不支持。
      1111 MCC Error MCC商户类别错误。
      1112 VAN credit limit greater than max Limit 卡片授权金额超出最高限额。
      1113 VAN credit limit less than min Limit 卡片授权金额低于最小限额。
      1114 Transaction Date before card activeDate 交易日期早于卡片有效期。
      1115 Transaction Date after card inactiveDate 交易日期晚于卡片失效日期。
      1116 Auth Amount greater than available VAN credit limit 授权金额超出卡片可用余额。
      1117 Auth Amount greater than available account credit limit 授权金额超出账户可用余额。
      1118 Limited usage with abnormal card status 卡片状态异常暂不可用。
      1201 Authorization already in process, please wait until the last authorization completed 授权过于频繁。
      1203 Not support 3ds 卡不支持3DS交易。
      2222 Authorization decision reject 授权决策拒绝。
      2299 Authorization decision downgrade reject 授权决策降级后拒绝。
      9000 Unknow Error 未知的错误。
      授权响应码(6510 退款授权)
      responseCode responseCodeDescription 备注
      0000 Authorization Approval 授权成功。
      1002 High Risk Transaction 高风险的交易。
      1003 Invalid Account 无效账号。
      1101 Abnormal Customer Status 客户状态异常。
      1107 Invalid CVV2 无效的CVV2安全码。
      1110 Trans Currency Not Allowed 交易币种不支持。
      1111 MCC Error MCC商户类别错误。
      授权响应码(6930 消费授权冲正)
      responseCode responseCodeDescription 备注
      0000 Authorization Approval 授权成功。
      1002 High Risk Transaction 高风险的交易。
      1003 Invalid Account 无效账号。
      1101 Abnormal Customer Status 客户状态异常。
      1105 Invalid Expiry Date 无效的有效期。
      2001 Original Transaction Unmatch 未匹配到原始的授权交易(有冲正通知)。
      2002 Original Transaction Unmatch 未匹配到原始的授权交易(无冲正通知)。
      授权响应码(6940 退款授权冲正)
      responseCode responseCodeDescription 备注
      0000 Authorization Approval 授权成功。
      1002 High Risk Transaction 高风险的交易。
      1003 Invalid Account 无效账号。
      2001 Original Transaction Unmatch 未匹配到原始的授权交易(有冲正通知)。
      2002 Original Transaction Unmatch 未匹配到原始的授权交易(无冲正通知)。
      授权响应码(6820 授权查询)
      responseCode responseCodeDescription 备注
      0000 Authorization Approval 授权成功。
      1002 High Risk Transaction 高风险的交易。
      1003 Invalid Account 无效账号。
      1102 Card canceled 卡片已注销。
      1118 Limited usage with abnormal card status 卡片状态异常暂不可用。
      响应体示例
      {
          "returnCode":"000000",
          "errorMessage":"Success",
          "cardLogId":"3d70589dfe5c9a771c520d3382ad67af6a17389128b1c3d7968d33b3f62d0703",
          "count":1,
          "more":true,
          "transactionData":[
              {
                  "cardLogId":"3d70589dfe5c9a771c520d3382ad67af6a17389128b1c3d7968d33b3f62d0703",
                  "requestId":"63fe1c0b-9030-4d57-82c7-74eec6e4a450",
                  "transactionId":"0707110634049997213457",
                  "orderNo":"dingdan11",
                  "transactionCurrencyCode":"344",
                  "transactionAmount":1000,
                  "cardCurrencyCode":"840",
                  "cardTransactionAmount":127.44,
                  "responseCode":"0000",
                  "responseDescription":"Authorization Approval",
                  "approvalCode":"730704",
                  "transactionCode":"6810",
                  "transactionDate":"2022-07-07 19:06:34",
                  "merchantName":"ALIEXPRESS.COM",
                  "mcc":"0015",
                  "merchantCountry":"SGP",
                  "merchantCity":"Singapore",
                  "merchantId":"87846545546",
                  "acquiringBankId":"213457",
                  "creditTransactionSign":"0",
                  "reversalType":"0"
              }
          ]
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32

      # SDK示例

      Java SDK
      public void testQueryAuthorizationByPage() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          QueryAuthTransactionByPageRequest request = new QueryAuthTransactionByPageRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setCardLogId(CARD_LOG_ID);
          request.setTransactionStartTime("2022-10-01 03:00:00");
          request.setTransactionEndTime("2022-10-10 04:00:00");
      
          QueryAuthTransactionByPageResponse response = tripLinkApi.authTransactionQueryByPage(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      PHP SDK
      public function testQueryAuthorizationByPage(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new QueryAuthTransactionByPageRequest(uniqid(), CUSTOMER_ID);
          $request->setCardLogId(CARD_LOG_ID);
          $request->setStartTime('2022-10-01 03:00:00');
          $request->setEndTime('2022-10-10 04:00:00');
      
          $response = $tripLinkAgent->authTransactionQueryByPage($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询清算交易

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      cardLogId String Y 卡ID TripLink专用卡标识。
      settlementStartTime String Y 起始日期 格式yyyy-MM-dd HH:mm:ss
      settlementEndTime String Y 截止日期 格式yyyy-MM-dd HH:mm:ss
      pageNo Number N 分页页码 整数,取值范围[1,100],默认值为1
      pageSize Number N 分页条数 整数,取值范围[1,100],默认值为5
      请求体示例
      {
        "requestId": "9032aee1-85aa-41e8-bc46-7ff8bb36097d",
        "customerId": "CSR47284A93E35E4",
        "cardLogId": "c55d99dac26bb334c07879404a93d2c6a96b42f7372f9c04d14034d019203fe4",
        "settlementStartTime": "2022-02-01 03:00:00",
        "settlementEndTime": "2022-03-01 04:00:00"
      }
      
      1
      2
      3
      4
      5
      6
      7

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      cardLogId String 卡ID TripLink专用卡标识。
      count Number 交易数量 整数,本次查询返回的交易数据量。
      more Boolean 更多数据 是否还有更多的分页数据 true表示本次请求查询条件下有更多的分页数据。
      settlementData Array 清算交易 详见SettlementTransaction
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect 请求参数错误。
      100007 NOT_FIND_CARD 卡不存在。
      9XXXXX (不固定) 系统错误。

      SettlementTransaction

      名称 类型 描述 备注
      serialNo String 交易唯一ID 全局唯一。
      occurDateTime String 交易发生时间 格式yyyy-MM-dd HH:mm:ss
      postingDateTime String 入账处理时间 格式yyyy-MM-dd HH:mm:ss
      postingSysTime String 入账系统时间 格式yyyy-MM-dd
      transactionCode String 交易类型 枚举值,4位数字,详见清算类型下拉框。
      transactionType String 交易类型描述 详见清算类型下拉框。
      approvalCode String 授权码 随机6位字母与数字。
      isCredit String 借贷记 DEBT:借记,CRED:贷记。
      originalTransactionCurrency String 交易币种 ISO 4217货币编号,3位数字。
      originalTransactionAmount Number 交易金额 小数,对应交易币种。
      cardTransactionCurrency String 卡币种 ISO 4217货币编号,3位数字。
      cardTransactionAmount Number 卡交易金额 小数,对应卡币种。
      accountCurrency String 清算币种 ISO 4217货币编号,3位数字。
      billAccountAmount Number 清算金额 小数,对应账户币种。
      posMerchantID String 商户ID
      posMerchantName String 商户名称
      posMerchantClassCode String 商户MCC ISO 18245商户类别,4位数字。
      posMerchantCountry String 商户所在国家 (未标准化)
      isoMerchantCountryCode String 商户所在国家 ISO 3166-1 alpha-3国家代码,3位字母。
      参考ISO 3166
      (可能为空值)
      posMerchantCity String 商户所在城市
      posAcquirerID String 收单行ID
      transactionId String 交易关联ID 关联同笔交易的关联ID
      清算类型
      transactionCode transactionType 描述 借贷记 金额数值
      2010 Purchase 消费 DEBT
      2110 Refund 消费退款 CRED
      4060 Chargeback Release 争议释放 DEBT
      4160 Chargeback 消费争议 CRED
      响应体示例
      
      
      1

      # SDK示例

      Java SDK
      
      
      1
      PHP SDK
      
      
      1

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 发起账户提现

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      paymentCurrency String Y 提现币种 ISO 4217货币编号,3位数字。
      paymentAmount Number Y 提现金额 小数,对应提现币种。
      beneficiaryAccountNo String Y 收款账号 账户须在TripLink备案。
      详情请联系您的客户经理。
      beneficiaryAccountName String Y 收款账户名称
      beneficiaryBankName String Y 收款银行名称
      beneficiaryBankCountryCode String Y 收款银行所在国家 ISO 3166-1 alpha-2国家代码,2位字母。
      参考ISO 3166
      reference String Y 附言 将直接传递给收款银行,长度不多于90 字符。
      仅允许英文,数字,空格和部分特殊字符 , - ()./
      clientOrderId String N 客户订单号
      请求体示例
      {
        "requestId": "9032aee1-85aa-41e8-bc46-7ff8bb36097d",
        "customerId": "CSR47284A93E35E4",
        "paymentCurrency": "840",
        "paymentAmount": "100.21",
        "beneficiaryAccountNo": "660010011001",
        "beneficiaryAccountName": "Trip company",
        "beneficiaryBankName": "JP Morgan",
        "beneficiaryBankCountryCode": "HK",
        "reference": "payment to xx",
        "clientOrderId": "13211000"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      orderId String 订单号 全局唯一。
      paymentCurrency String 提现币种 ISO 4217货币编号,3位数字。
      paymentAmount Number 提现金额 小数,对应提现币种。
      acceptTime String 受理时间 格式:yyyy-MM-dd HH:mm:ss
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect 请求参数错误。
      150016 RequestId is exists 请求ID已存在。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "orderId": "142303141346210898",
        "paymentCurrency": "840",
        "paymentAmount": "100.21",
        "acceptTime": "2023-03-14 12:00:00"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8

      # SDK示例

      Java SDK
      public void testPayoutCreate() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          PayoutCreateRequest request = new PayoutCreateRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId("CSR2E54DC4B8A5D4");
          request.setPaymentCurrency("840");
          request.setPaymentAmount(new BigDecimal("100"));
          request.setBeneficiaryAccountNo("12321424");
          request.setBeneficiaryAccountName("trip company");
          request.setBeneficiaryBankName("bank name");
          request.setBeneficiaryBankCountryCode("HK");
          request.setReference("reference123");
          request.setClientOrderId("f334f967102d");
          
          PayoutCreateResponse response = tripLinkApi.payoutCreate(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      PHP SDK
      
      
      1

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询账户提现

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      oriRequestId String Y 原始请求流水号
      请求体示例
      {
        "requestId": "68519520-66ef-404d-82cc-fa34f967002d",
        "customerId": "CSR47284A93E35E4",
        "oriRequestId": "9032aee1-85aa-41e8-bc46-7ff8bb36097d"
      }
      
      1
      2
      3
      4
      5

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      orderId String 订单号 全局唯一。
      status String 订单状态 1:处理中,2:已汇出,3审核拒绝
      4:汇款拒绝,5:汇款异常,6:已退票
      paymentCurrency String 提现币种 ISO 4217货币编号,3位数字。
      paymentAmount Number 提现金额 小数,对应提现币种。
      beneficiaryAccountNo String 收款人账号
      beneficiaryAccountName String 收款人账户名称
      acceptTime String 受理时间 格式:yyyy-MM-dd HH:mm:ss
      clientOrderId String 客户订单号
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect 请求参数错误。
      150017 Order is not exists 订单不存在。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "orderId": "142303141346210898",
        "status": 1,
        "paymentCurrency": "840",
        "paymentAmount": "100.21",
        "beneficiaryAccountNo": "1232112",
        "beneficiaryAccountName": "trip company",
        "acceptTime": "2023-03-14 12:00:00",
        "clientOrderId": "clientOrderId"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      # SDK示例

      Java SDK
      public void testPayoutQuery() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          PayoutQueryRequest request = new PayoutQueryRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId("CSR2E54DC4B8A5D4");
          request.setOriRequestId("9032aee1-85aa-41e8-bc46-7ff8bb36097d");
          
          PayoutQueryResponse response = tripLinkApi.payoutQuery(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      PHP SDK
      
      
      1

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询汇率

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      sellCurrency String Y 卖出币种 ISO 4217货币编号,3位数字。
      buyCurrency String Y 买入币种 ISO 4217货币编号,3位数字。
      fxDirection Number Y 交易方向 0:指定卖出,此时fxAmount为卖出金额;
      1:指定买入,此时fxAmount为买入金额。
      fxAmount Number Y 交易金额 小数,对应交易币种。
      请求体示例
      {
        "requestId": "3ddf14f6-04b0-4a66-840b-a21cf0c148ee",
        "customerId": "CSR47284A93E35E4",
        "sellCurrency": "156",
        "buyCurrency": "840",
        "fxDirection": 0,
        "fxAmount": 100.00
      }
      
      1
      2
      3
      4
      5
      6
      7
      8

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      quoteId String 汇率ID 汇率唯一ID。
      sellCurrency String 卖出币种 ISO 4217货币编号,3位数字。
      sellAmount Number 卖出金额 小数,对应卖出币种。
      buyCurrency String 买入币种 ISO 4217货币编号,3位数字。
      buyAmount Number 买入金额 小数,对应买入币种。
      rate Number 汇率 小数。
      expireTime String 失效时间 格式yyyy-MM-dd HH:mm:ss(时区 UTC+08:00)。
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "success",
        "quoteId": "f3c41a86e880f2c71de0b5c45d4ae066",
        "sellCurrency": "156",
        "sellAmount": 100.00,
        "buyCurrency": "840",
        "buyAmount": 15.72,
        "rate": 0.15707102,
        "expireTime": "2022-02-25 21:56:51"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

      # SDK示例

      Java SDK
      public void testFxQuote() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          QuoteRequest request = new QuoteRequest();
          request.setRequestId(UUID.randomUUID().toString());
          request.setCustomerId(CUSTOMER_ID);
          request.setSellCurrency("156");
          request.setBuyCurrency("840");
          request.setFxDirection(0);
          request.setFxAmount(BigDecimal.valueOf(100.00));
      
          QuoteResponse response = tripLinkApi.quote(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      PHP SDK
      public function testFxQuote(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
      
          $request = new FxQuoteRequest(uniqid(), CUSTOMER_ID);
          $request->setSellCurrency('156');
          $request->setBuyCurrency('840');
          $request->setFxDirection(0);
          $request->setFxAmount(100.00);
      
          $response = $tripLinkAgent->fxQuote($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13

      BASE_URL:API地址。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 发起换汇订单

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      sellCurrency String Y 卖出币种 ISO 4217货币编号,3位数字。
      buyCurrency String Y 买入币种 ISO 4217货币编号,3位数字。
      fxDirection Number Y 交易方向 0:指定卖出,此时fxAmount为卖出金额;
      1:指定买入,此时fxAmount为买入金额。
      fxAmount Number Y 交易金额 对应交易币种。
      quoteId String N 汇率ID 查询汇率 返回的汇率ID。
      若不传,则以实时汇率成交。
      请求体示例
      {
        "requestId": "9032aee1-85aa-41e8-bc46-7ff8bb36097d",
        "customerId": "CSR32384FAC033D4",
        "sellCurrency": "840",
        "buyCurrency": "157",
        "fxDirection": "0",
        "fxAmount": "200.99"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      orderId String 交易订单号 TripLink返回的唯一订单号。
      acceptTime String 受理时间 格式yyyy-MM-dd HH:mm:ss
      sellCurrency String 卖出币种 ISO 4217货币编号,3位数字。
      sellAmount Number 卖出金额 对应卖出币种。
      buyCurrency String 买入币种 ISO 4217货币编号,3位数字。
      buyAmount Number 买入金额 对应买入币种。
      rate Number 汇率 小数。
      quoteId String 汇率ID
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect 请求参数错误。
      100006 No rate 汇率不存在。
      100010 account currency not enough 账户余额不足。
      100017 customer product is not support 产品不支持。
      120034 RequestId is exists 请求id已存在。
      120035 Fx info not match quote info 换汇信息与询价信息不匹配。
      120037 The exchange amount is not within the limit 换汇金额不在限制范围内。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "orderId": "646873e2-4d3f-486b-83af-e6a0bc6d464c",
        "acceptTime": "2024-01-08 14:38:17",
        "sellCurrency": "840",
        "sellAmount": "28.08",
        "buyCurrency": "157",
        "buyAmount": "200.99",
        "rate": "7.15711345",
        "quoteId": "ff36346e5c5c4562af194ba44165d759"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      # SDK示例

      Java SDK
      public void testFxCreate() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          FxCreateRequest request = new FxCreateRequest();
          request.setRequestId(String.valueOf(UUID.randomUUID()));
          request.setCustomerId("CSR2E54DC4B8A5D4");
          request.setSellCurrency("840");
          request.setBuyCurrency("344");
          request.setFxDirection(0);
          request.setFxAmount(new BigDecimal("100.03"));
          
          FxCreateResponse response = tripLinkApi.fxCreate(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      PHP SDK
      public function testFxCreate(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
          $request = new FxCreateRequest(uniqid(), CUSTOMER_ID);
          $request->setSellCurrency('840');
          $request->setBuyCurrency('157');
          $request->setFxDirection(0);
          $request->setFxAmount(2.98);
          $request->setQuoteId('');
          
          $response = $tripLinkAgent->fxCreate($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14

      BASE_URL:API地址;

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 查询换汇订单

      # 请求体

      名称 类型 必填 描述 备注
      requestId String Y 请求流水号 请求头
      customerId String Y 客户ID 请求头
      oriRequestId String N 原始请求流水号 oriRequestIdorderId 其中一者必填。
      orderId String N 订单号 oriRequestIdorderId 其中一者必填。
      请求体示例
      {
        "requestId": "2024010800000001",
        "customerId": "CSR32384FAC033D4",
        "oriRequestId": "9032aee1-85aa-41e8-bc46-7ff8bb360976"
      }
      
      1
      2
      3
      4
      5

      # 响应体

      名称 类型 描述 备注
      returnCode String 结果码 枚举值,6位数字,详见结果码下拉框。
      (非000000表示请求处理失败)
      errorMessage String 结果码描述 详见结果码下拉框。
      orderId String 交易订单号 TripLink返回的唯一订单号。
      status Number 状态 0:创建中,1:失败,2:失败。
      acceptTime String 受理时间 格式yyyy-MM-dd HH:mm:ss
      sellCurrency String 卖出币种 ISO 4217货币编号,3位数字。
      sellAmount Number 卖出金额 对应卖出币种。
      buyCurrency String 买入币种 ISO 4217货币编号,3位数字。
      buyAmount Number 买入金额 对应买入币种。
      rate Number 汇率 小数。
      quoteId String 汇率ID
      结果码
      returnCode errorMessage 备注
      000000 Success 成功。
      100000 Input parameter is incorrect 请求参数错误。
      120036 Fx order not found 换汇订单不存在。
      9XXXXX (不固定) 系统错误。
      响应体示例
      {
        "returnCode": "000000",
        "errorMessage": "Success",
        "orderId": "f1f0dded-a130-4bc9-be08-0d9cc9072dc4",
        "status": 1,
        "acceptTime": "2024-01-08 14:39:31",
        "sellCurrency":"840",
        "sellAmount":200.99,
        "buyCurrency":"157",
        "buyAmount":1438.51,
        "rate":7.15711345,
        "quoteId":"94eae20cbbc54c7e89c502a653ce41bc"
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13

      # SDK示例

      Java SDK
      public void testFxQuery() {
          HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
          TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
          TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);
      
          FxQueryRequest request = new FxQueryRequest();
          request.setRequestId(String.valueOf(UUID.randomUUID()));
          request.setCustomerId("CSR2E54DC4B8A5D4");
          request.setOriRequestId("testRequest1");
          
          FxQueryResponse response = tripLinkApi.fxQuery(request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      PHP SDK
      public function testFxQuery(): void {
          $httpClient = new GuzzleHttpClient();
          $customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
          
          $tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);
          $request = new FxQueryRequest(uniqid(), CUSTOMER_ID);
          $request->setOrderId('27f4b30b-3ddc-4736-8c9d-a35d3e73cae7');
          
          $response = $tripLinkAgent->fxQuery($request);
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      BASE_URL:API地址;CARD_LOG_ID:卡ID。

      CUSTOMER_ID:客户ID;CUSTOMER_PRIVATE_KEY:客户RSA私钥。

      AES_KEY:AES密钥;TRIPLINK_PUBLIC_KEY:TripLink RSA公钥。

      # 报表服务

      # 报表分类

      TripLink向客户提供多种维度报表,每种报表位于SFTP路径/production/report/类型下(具体路径请联系 TripLink 商务团队确认),接入方可以选择需要的类型与周期。

      名称 类型 周期 文件名格式
      结算报表 SETTLEMENT_REPORT 每日
      每周
      每月
      ST001_2023-02-02.csv
      ST010_2023-02-06.csv
      ST100_2023-02-01.csv
      周期结算报表 CYCLE_SETTLEMENT_REPORT 账期 CST001_2023-02-01.csv
      账单报表 BILL_REPORT 账期 SS001_2023-02-01.csv
      授权交易报表 AUTHORIZATION_REPORT 每天 VA001_2023-02-01.csv
      开卡报表 CARD_ISSUED_REPORT 每天 OV001_2023-02-01.csv
      还款报表 REPAY_REPORT 每天 VPMT001_2023-02-01.csv
      争议报表 CHARGEBACK_REPORT 每月 NATC100_2023-02-01.csv
      vcc充值报表 VCC_CHARGE_REPORT 每天 TUP001_2023-02-01.csv
      授权计费报表 AUTH_FEE_REPORT 每天 AF001_2023-02-01.csv
      资金明细报表 FUNDS_DETAIL_REPORT 每天 FU001_2023-02-01.csv
      实时换汇授权报表 EXCHANGE_REPORT 每天 RFX001_2023-02-01.csv
      奖励金报表 REBATE_REPORT 每月 RB100_2023-02-01.csv

      # 报表触发方式

      1.客户在TripLink的客户端中的报表服务菜单下,主动发起报表请求

      2.系统根据客户的报表配置主动发起

      # 报表送达方式

      1.portal下载:客户在TripLink客户端主动发起的报表,文件生成后,可直接在客户端下载。

      2.邮件推送:文件生成后向客户配置的接收邮箱中发送一份邮件,附件就是生成后的文件(邮件送达方式有附件的大小限制,当文件大于15M时,邮件方式无法送达,建议客户改接SFTP)。

      3.SFTP推送:文件生成后,向客户目录下投递文件,格式为:/production/report/ + 报表类型 + /+ 具体文件名。例如:客户A配置了开卡报表,那么在文件生成后,会投递到该客户的文件服务器上,路径为:/production/report/CARD_ISSUED_REPORT/OV001_2022-06-15.csv

      # 报表表头说明

      1.结算报表表头(含周期结算报表)

      表头字段 字段类型 字段含义
      VANhistoryID String 结算记录唯一标识
      CardlogID String 卡记录ID,加密后的卡号
      ProductCode String 卡类型,卡的产品代码
      TransID String 卡记录号(卡短号)
      ActivityType String 交易类型,Refund--退款,Purchase--消费,Rebate-奖励金,Chargeback-争议,ChargebackFee-争议手续费
      IssuedToECN String 客户号
      VAN String 卡号
      TransDate String 入账日期,切日前, 格式 yyyy-MM-dd
      TransTime String 入账时间,清算完成时间, 格式yyyy-MM-dd HH:mm:ss
      TransCurr String 入账币种,卡入账币种, 如USD,EUR,HKD
      TransAmt String 入账金额,卡入账金额(交易金额转为卡本币的金额)
      POSAmt String 交易金额
      POSCurr String 交易币种
      ReconciliationAmount String 清算金额
      ReconciliationCurrency String 清算币种
      RequestedDate String 发卡日期, 格式yyyy-MM-dd
      RequestedTime String 发卡时间, 格式yyyy-MM-dd HH:mm:ss
      LocalTime String 交易时间(交易当地时间), 格式yyyy-MM-dd HH:mm:ss
      AuthTime String 授权时间
      MinAmt String 卡最小授权金额
      VANAmt String 开卡总金额
      MaxAmt String 卡最大授权金额
      ActivationDate String 卡可交易日期, 格式yyyy-MM-dd
      AuthAmt String 授权金额
      AuthCurr String 授权币种
      AuthCode String 授权码
      ValidUntil String 卡失效日期
      MerchID String MID,商户ID
      MerchCategoryCode String MCC, 商户MCC
      MerchCategoryName String MCC名称, 商户MCC名称
      MerchName String 商户名
      MerchAddress String 商户地址
      MerchCity String 商户城市
      MerchState String 商户州
      MerchPostCode String 商户邮编
      MerchCountry String 商户国家
      CrossBoardType String 跨境类型, international-国际, domestic-国内
      UserReference1 String 预留域1
      UserReference2 String 预留域2
      UserReference3 String 预留域3
      UserReference4 String 预留域4
      UserReference5 String 预留域5
      UserReference6 String 预留域6
      UserReference7 String 预留域7
      UserReference8 String 预留域8
      NatOrNot String 是否是Nat交易, yes-是 , no-否
      OrderId String 交易的唯一id, 同授权报表OrderId

      2.授权交易报表表头

      表头字段 字段类型 字段含义
      CardlogID String 卡记录ID,加密的卡号
      ProductCode String 卡类型
      TransID String 卡记录号(卡短号)
      Status String 卡状态
      IssuedToECN String 客户号
      CardType String 卡片类型
      MerchantCategory String 商户类别
      VAN String 卡号
      TransactionProfileCode String 交易码, 6810-消费授权,6510-退款授权,6930-消费授权冲正,6940-退款授权冲正,6820-授权查询
      TransactionProfileType String 交易类型,Authorization (Purchase)-消费授权,Authorization (Refund)-退款授权,Authorization Reversal (Purchase)-消费授权冲正,Authorization Reversal (Refund)-退款授权冲正,Authorization Query-授权查询
      RequestedTime String 发卡时间,格式yyyy-MM-dd HH:mm:ss
      ActivationDate String 可交易日期,格式yyyy-MM-dd
      ExpiryDate String 有效期, 格式yyyy-MM-dd
      VANCurrency String 开卡币种
      MinAmt String 最小交易金额
      MaxAmt String 最大交易金额
      AvailableBalance String 剩余额度
      AuthCount String 授权次数
      VANMode String 单次/多次卡, Singleuse-单次卡,Multiuse-多次卡
      VANhistoryID String 授权流水号
      AuthStatus String 授权状态,success-成功,failure-失败
      MsgType String 消息类型
      AuthCode String 授权码
      TransTime String UTC8时间,格式yyyy-MM-dd HH:mm:ss
      POSCurr String 刷卡币种
      POSAmt String 刷卡金额
      MerchID String MID
      MerchantName String 商户名称
      MerchantCity String 商户城市
      MerchantCountry String 商户国家
      CrossBoardType String 跨境类型, international-国际, domestic-国内
      MerchCategoryCode String MCC
      MerchCategoryName String MCC名称
      UserReference1 String 预留域1
      UserReference2 String 预留域2
      UserReference3 String 预留域3
      UserReference4 String 预留域4
      UserReference5 String 预留域5
      UserReference6 String 预留域6
      UserReference7 String 预留域7
      UserReference8 String 预留域8
      Notes String N/A, 一般为空
      OrderId String 交易id,

      3.开卡报表表头

      表头字段 字段类型 字段含义
      VAN String 卡号
      CardlogID String 加密卡号
      ProductCode String 卡类型
      TransID String 卡记录号(卡短号)
      RequestedDate String 申卡日期,格式 yyyy-MM-dd
      RequestedTime String 申卡时间, 格式yyyy-MM-dd HH:mm:ss
      VANCurrency String 开卡币种
      VANAmt String 开卡额度
      SettlementCurrency String 结算币种
      ActivationDate String 可交易日期, 格式yyyy-MM-dd
      ExpiryDate String 有效期, 格式yyyy-MM-dd
      VANMode String 卡片模式,Singleuse-单次卡,Multiuse-多次卡
      CloseRatio String 关卡百分比
      MinAuthAmt String 最小授权金额
      MaxAuthAmt String 最大授权金额
      BookingNumber String 订单号
      UserName String 开卡用户

      4.还款报表表头

      表头字段 字段类型 字段含义
      VANhistoryID String 交易明细ID
      IssuedToECN String 客户ID
      Account String 账户类型
      ActivityType String 还款
      PMTAmount String 还款金额
      PMTCurrency String 还款币种
      TransDate String 还款日期
      TransTime String 还款时间

      5.争议报表表头

      表头字段 字段类型 字段含义
      ECN String 客户ID
      TransID String 卡记录号(卡短号)
      CardlogID String 卡记录id
      ProductCode String 卡类型
      NATID String N/A, 一般为空
      MerchantName/Location/MC String MCC
      VAN String 卡号
      Amount String 金额
      VANCurrency String 卡币种
      NetSettled String 清算金额
      SettlementCurrency String 清算币种
      PosAmount String 交易金额
      PosCurrency String 交易币种
      VANAvailableBalance String 卡余额
      VANIssuedDate String 开卡日期, 格式yyyy-MM-dd
      1stPresentmentDate String 首次请款日期, 格式yyyy-MM-dd
      ActionType String 交易类型, Chargeback in transit-争议中, Small Balance advances-小额垫付,Chargeback Release to Ctrip-争议释放给triplink,Chargeback Release to BU-争议释放给客户
      ActionDate String 日期, 格式yyyy-MM-dd
      TransTime String 时间,格式yyyy-MM-dd HH:mm:ss
      ActionBy String UID
      ChargebackReason String N/A,一般是为空
      Notes/Justification String N/A, 一般是为空
      DocumentationFee String N/A, 一般是为空
      MasterCardDocumentationFee String N/A,一般是为空
      MasterCardDocumentationFee String N/A,一般是为空

      6.vcc充值报表表头

      表头字段 字段类型 字段含义
      Date String 日期, 格式yyyy-MM-dd
      ClientID String 客户ID
      ClientName String 客户名称
      Top_up_Amount String 充值金额
      Top_up_Currency String 充值币种

      7.授权计费报表表头

      表头字段 字段类型 字段含义
      Date String 日期,格式yyyy-MM-dd
      ClientID String 客户ID
      ClientName String 客户名称
      Auth_Fee String 授权费用
      Auth_Fee_Curr String 授权费用币种
      CardlogID String 卡id
      ProductCode String 产品code
      TransID String 交易id
      VAN String 卡号
      TransactionProfileCode String 授权码
      TransactionProfileType String 授权类型
      AuthStatus String 授权状态
      MsgType String MSG
      AuthCode String 授权code
      TransTime String 授权时间
      POSCurr String 授权币种
      POSAmt String 授权金额

      8.资金明细报表表头

      表头字段 字段类型 字段含义
      Customer_id String 客户id
      Event_time String 变动时间, 格式yyyy-MM-dd HH:mm:ss
      ActivityType String 交易类型
      VANhistoryID String 流水号, 唯一的
      OrderID String 交易号
      SettlementState String 是否清算
      TransactionCurrency String 交易币种
      TransactionAmount String 交易金额
      CardlogId String 加密卡号
      VAN String 卡号
      Currency String 币种
      Amount String 金额
      BeginBalanceAmount String 期初金额
      EndBalanceAmount String 期末金额
      AuthCode String 授权码

      9.实时换汇授权报表表头

      表头字段 字段类型 字段含义
      CustomerId String 客户号
      CardlogID String 加密卡号
      VAN String 卡号
      AuthCode String 授权码
      TransTime String 授权时间, 格式yyyy-MM-dd
      POSCurr String 授权币种
      POSAmt String 授权金额
      QuotaId String 查询汇率id
      QuotaIdRate String 查询汇率
      FXTime String 换汇时间, 格式yyyy-MM-dd HH:mm:ss
      BuyCurr String 买入币种
      BuyAmt String 买入金额
      SellCurr String 卖出币种
      SellAmt String 卖出金额
      Rate String 汇率(实际成交)

      10.奖励金报表

      表头字段 字段类型 字段含义
      CardlogID String 加密卡号
      orderid String 订单号
      TransID String 记录ID
      ActivityType String 交易类型
      VAN String 卡号
      TransDate String 入账日期, 格式yyyy-MM-dd
      TransTime String 入账时间, 格式yyyy-MM-dd HH:mm:ss
      ReconciliationCurrency String 结算币种
      ReconciliationAmount String 结算金额
      product_code String 卡类型
      crossboard_type String 跨境类型, international-国际, domestic-国内
      commission_rate String 返点率
      commission_mcc_group String mcc组
      channel String 渠道
      MerchName String 商户名称