跳轉到

API 認證方式 Authentication

在開始前

請先確認已有 Access KeySecret Key ,若尚未取得,請聯繫服務窗口。

Cabital Connect API 採用簽名認證的方式驗證請求。製作請求簽名認證流程如下:

  1. 於請求 Header 新增認證所需參數 ACCESS-KEYACCESS-TIMESTAMPACCESS-NONCE
  2. 將第一步所新增之參數與請求資訊組成簽名字串
  3. Secret Key 對簽名字串進行加密處理
  4. 將第三步結果以參數名 ACCESS-SIGN 新增進請求 Header 參數內
  5. 發送請求時皆附帶 Header 參數: ACCESS-KEYACCESS-TIMESTAMPACCESS-NONCEACCESS-SIGN

請注意

  1. 請勿分享 Secret Key,否則會造成資訊洩漏以及不必要的交易損失
  2. Secret Key 出現異常,請立即聯繫 Cabital 服務窗口並更新

步驟一:新增請求 Header 認證參數

參數 說明
ACCESS-KEY 合作方的 Access Key
ACCESS-TIMESTAMP 請求的時間戳記,必須與 API 請求的實際時間差在 30 秒內,否則會被視為過期並拒絕請求
ACCESS-NONCE 每次請求的唯一值(數字或字串),
在 60 分鐘內以相同 ACCESS-NONCE 發送多次請求時,只會處理第一筆請求

步驟二:組成簽名字串

StringToSign =
    AccessTimestamp + \n +
    RequestMethod + \n +
    AccessNonce + \n +
    RequestPath + \n +
    RequestBody
參數 說明
AccessTimestamp 同 Header 參數 ACCESS-TIMESTAMP
RequestMethod 請求方法,必須為大寫字母,如: GETPOSTPUT
AccessNonce 同 Header 參數 ACCESS-NONCE
RequestPath 請求路徑,不含 Host,含請求 Query 參數
如:/api/v1/accounts/6d92e7b4-715c-4ce3-a028-19f1c8c9fa6c/transfers?direction=CREDIT&has_conversion=true
RequestBody 請求內容
  • 須為字串型態
  • 請求方式為 GET 時為 ''(空值)
  • 請求內容類型為 form-data 時為 ''(空值),例如 KYC Acceptance

步驟三:加密簽名字串

將步驟二組成的簽名字串以 Secret Key 進行 HMAC-SHA256 加密處理,並轉成 Base64 格式編碼

可以透過此線上工具協助驗證加密結果

步驟四:將加密結果加進請求 Header 參數內

以參數名 ACCESS-SIGN 新增進請求 Header 參數內,新增完的請求 Header 所需認證參數如下:

  • ACCESS-KEY
  • ACCESS-TIMESTAMP
  • ACCESS-NONCE
  • ACCESS-SIGN

範例說明

合作方資訊

  • Access Keyb40b978e-ee0c-11ec-8573-0a3898443cb8
  • Secret Key123(此為範例假設值,非實際值)

範例一:GET 請求

以請求 以合作方帳號 ID 查詢轉帳交易列表 為例

參數 說明
方法與路徑 GET https://connect.cabital.com/api/v1/userextref/latibac_user_1656053354/transfers?direction=CREDIT&symbol=USDT&created_from=1633445160
請求時間戳 1660017228
請求唯一值 1660017228636
  1. 組成簽名字串
    1660017228GET1660017228636/api/v1/userextref/latibac_user_1656053354/transfers?direction=CREDIT&symbol=USDT&created_from=1633445160
    
  2. 加密簽名字串,結果為
    cfa1WY0a5KcVM+NXUDqE1QVBJgO8euOUx59UVhwU6Zs=
    
  3. 完整請求如下
    curl 'https://connect.cabital.com/api/v1/userextref/latibac_user_1656053354/transfers?direction=CREDIT&symbol=USDT&created_from=1633445160' \
       --header 'ACCESS-KEY: b40b978e-ee0c-11ec-8573-0a3898443cb8' \
       --header 'ACCESS-SIGN: cfa1WY0a5KcVM+NXUDqE1QVBJgO8euOUx59UVhwU6Zs=' \
       --header 'ACCESS-TIMESTAMP: 1660017228' \
       --header 'ACCESS-NONCE: 1660017228636'
    

範例二:PUT 請求

以請求 用户同名認證 Match 為例

參數 說明
方法與路徑 PUT https://connect.cabital.com/api/v1/accounts/bf07fe96-2b05-4281-94ad-4fe39394e707/match
請求時間戳 1660025004
請求唯一值 1660025004705
  1. 組成簽名字串
    1660025004PUT1660025004705/api/v1/accounts/bf07fe96-2b05-4281-94ad-4fe39394e707/match{
        "name": "John Doe",
        "id": "880730123",
        "id_document": "PASSPORT",
        "dob": "1985-11-05",
        "issued_by": "TWN"
    }
    
  2. 加密簽名字串,結果為
    dtiC01bc8S/s2IoH1Rq6WrgNIwrKuE4wgxkyP8Cf9+c=
    
  3. 完整請求如下
    curl -X PUT 'https://connect.cabital.com/api/v1/accounts/bf07fe96-2b05-4281-94ad-4fe39394e707/match'
         -d '{
           "name": "John Doe",
           "id": "880730123",
           "id_document": "PASSPORT",
           "dob": "1985-11-05",
           "issued_by": "TWN"
         }'
         --header 'ACCESS-KEY: b40b978e-ee0c-11ec-8573-0a3898443cb8' \
         --header 'ACCESS-SIGN: dtiC01bc8S/s2IoH1Rq6WrgNIwrKuE4wgxkyP8Cf9+c=' \
         --header 'ACCESS-TIMESTAMP: 1660025004' \
         --header 'ACCESS-NONCE: 1660025004705'