# Table of Contents - [Change Log | WasabiCard](#change-log-wasabicard) - [Quick Start | WasabiCard](#quick-start-wasabicard) - [Card Issuance Process | WasabiCard](#card-issuance-process-wasabicard) - [CARD | WasabiCard](#card-wasabicard) - [ACCOUNT | WasabiCard](#account-wasabicard) - [COMMON | WasabiCard](#common-wasabicard) - [Welcome | WasabiCard](#welcome-wasabicard) - [Cards | WasabiCard](#cards-wasabicard) - [WEBHOOKS | WasabiCard](#webhooks-wasabicard) - [Card holder | WasabiCard](#card-holder-wasabicard) --- # Change Log | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-10-31-already-online) 2025-10-31 (already online) ------------------------------------------------------------------------------------------------------------------ ### [](https://wsb.gitbook.io/wasabicard-doc/change-log#card-opening-process-optimization) Card opening process optimization The original V1 version interface card activation process will not be updated; it will run in parallel with the V2 version interface. **If you upgrade to the V2 version interface,** you must use the: **Create card-V2** interface **Card Operation Transaction-V2** interface **Card Purchase Transaction** interface #### [](https://wsb.gitbook.io/wasabicard-doc/change-log#optimization-point) **Optimization Point:** 1. The card no is returned immediately after the create card interface is called. 2. Added card purchase transaction. You can query the card fee and first-time deposit amount for your order. 3. Create card records and first deposit records are merged. 4. In the Card Operation Transaction-V2 interface, the value of the `**type**` field has been changed to be optional. #### [](https://wsb.gitbook.io/wasabicard-doc/change-log#old-v1-process-detail) **Old V1 Process Detail:** 1. **call Create card interface \[**/merchant/core/mcb/card/openCard**\].** 1. CardNo will be returned only when the card is successfully created 2. The response data structure is an array. 3. "amount" Field means: card fee. Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "orderNo": "1852379830190366720",\ "merchantOrderNo": "T1852379826671345664",\ "cardNo": null,\ "currency": "USD",\ "amount": 5, //card fee\ "fee": 0,\ "receivedAmount": 5,\ "receivedCurrency": "USD",\ "type": "create",\ "status": "processing",\ "description": null\ "remark": null,\ "transactionTime": 1730476741729\ }\ ] } 1. The webhook will push Create card and Deposit card data from the card operation transaction. There are two types of data in total. Copy { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "WB2025103119841257038691924352", "currency": "USD", "amount": 5, //card fee "fee": 0, "receivedAmount": 5, "receivedCurrency": "USD", "type": "create", "status": "success", "description": null "remark": null, "transactionTime": 1730476741729 } // Initial Deposit { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "WB2025103119841257038691924352", "currency": "USD", "amount": 20, //Initial Deposit amount "fee": 0, "receivedAmount": 20, "receivedCurrency": "USD", "type": "deposit", "status": "success", "description": null "remark": null, "transactionTime": 1730476741729 } #### [](https://wsb.gitbook.io/wasabicard-doc/change-log#new-v2-process-detail) **New V2 Process Detail:** 1. **call Create card interface \[**/merchant/core/mcb/card/v2/createCard**\].** 1. The card no will be returned immediately. 2. The response data structure is object. 3. "amount" Field means: Initial Deposit amount Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "WB2025103119841257038691924352", "currency": "USD", "amount": 20, //Initial deposit amount "fee": 0.1, //Initial deposit fee "receivedAmount": 0, "receivedCurrency": "USD", "type": "create", "status": "wait_process", "description": null "remark": null, "transactionTime": 1730476741729 } } 1. The webhook will push Create card from the card operation transaction. Copy { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "WB2025103119841257038691924352", "currency": "USD", "amount": 20, //Initial deposit amount "fee": 0.1, //Initial deposit fee "receivedAmount": 20, "receivedCurrency": "USD", "type": "create", "status": "success", "description": null "remark": null, "transactionTime": 1730476741729 } 1. if you want to see card fee. you can query /merchant/core/mcb/card/purchaseTransaction interface [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-10-13-already-online) 2025-10-13 (already online) ------------------------------------------------------------------------------------------------------------------ 1. [Card Auth Transaction interface](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-authorization-transaction-consumption-bill) Update Added response fields: Copy { "authorizationCode": "478198", "merchantData": { "name": "HUQQABAZ RESTAURANTS B DUBAI ARE", "categoryCode": "5811", "category": "", "country": "ARE", "state": "", "city": "", "zipCode": "", "mid": 213028402482045, "walletType": "ApplePay" } } [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-10-02-already-online) 2025-10-02 (already online) ------------------------------------------------------------------------------------------------------------------ 1. [**Support Bins interface**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) **Update** Added response fields: 1. metadata.cardHolderMaxCardLimit (Maximum purchase quantity limit for cardholders) 2. metadata.cardHolderModel (Cardholder business model, B2B, B2C) 3. metadata.supportSettingNoPinPaymentAmount (Set the amount limit for password-free payment (Physical card)) 4. metadata.defaultNoPinPaymentAmount (Default amount for password-free payment(Physical card)) 5. metadata.noPinPaymentAmountMinQuota (Minimum amount for password-free payment(Physical card)) 6. metadata.noPinPaymentAmountMaxQuota (Maximum amount for password-free payment(Physical card)) 7. risk (High risk merchant. Consumption in this scenario will trigger card cancellation risk control) 2. [**Card Info interface**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info) **Update** 1. The response fields cardNumber, cvv, and validPeriod will be removed (2025-11-01 deprecated). Access the information separately through the \[[**/merchant/core/mcb/card/sensitive**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive)\ **\]** interface. 3. [**Card Info For Sensitive interface**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive) **Add** 1. The three card elements (cardNumber, cvv, expireDate) are returned separately through this interface, and the parameter values ​​are encrypted. 4. **The freeze-v1 interface will be deprecated.** 2025-11-01 deprecated 1. Use of the v2 interface /merchant/core/mcb/card/v2/freeze 5. **The unfreeze-v1 interface will be deprecated.** 2025-11-01 deprecated 1. Use the v2 interface. /merchant/core/mcb/card/v2/unfreeze 6. **Cardholder** > Introduction: The cardholder-v1 API functionality has been merged into cardholder-v2 for unified access. Required parameters are determined based on the different modes. > > Cardholders are divided into two modes: B2B and B2C, with different request parameters. > > * B2B corresponds to the parameters of the original Cardholder-Create-v1 API; > > * B2C corresponds to the parameters of the original Cardholder-Create-v2 API. > > > The B2B and B2C values ​​are the metadata.cardHolderModel returned in the corresponding /merchant/core/mcb/card/v2/cardTypes API. > > If needCardHolder = true, a cardholder needs to be created. > > If metadata.cardHolderModel = B2B, use the B2B mode. > > If metadata.cardHolderModel = B2C, use the B2C mode. * **Cardholder-Create-v1 will be deprecated.** 2025-11-01 deprecated. (**Merged into the cardholder-create-v2 interface**) Use the v2 API /merchant/core/mcb/card/holder/v2/create. The request parameters are divided into two modes: **B2B** and **B2C**. * **Cardholder-Update-v1 will be deprecated.** 2025-11-01 deprecated. (**Merged into the cardholder-update-v2 interface**) Use the v2 API /merchant/core/mcb/card/holder/v2/update. The request parameters are divided into two modes: B2B and B2C. [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-06-22-already-online) 2025-06-22 (already online) ------------------------------------------------------------------------------------------------------------------ 1. The [city list](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) interface data has been fully updated. Customers need to resynchronize, and some city codes have been adjusted; 2. Added the [city list-v2](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list-v2) interface, which returns the province/state/region level data; 3. Added the [physical card issuance process](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process#physical-card) ; [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-06-22-already-online-1) 2025-06-22 (Already online) -------------------------------------------------------------------------------------------------------------------- 1. Added [Card Issuance Process](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process) , Contains the latest card opening process for card BIN 4549, and the interface is adjusted when creating a cardholder; 2. Added [CardHoder-Create-v2](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2) interface; 3. Added [CardHoder-Update-v2](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-update-v2) interface; 4. Added [Upload File](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface; [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-05-18-already-online) 2025-05-18 (Already online) ------------------------------------------------------------------------------------------------------------------ 1. Added [Freeze - v2](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#freeze-v2) interface; 2. Added [UnFreeze - v2](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#unfreeze-v2) interface; 3. [Card Transaction](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-transaction) interface add type `Freeze`、`UnFreeze` 4. [Card Transaction Notification](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-transaction-notification) add type `Freeze`、`UnFreeze` [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-04-20-already-online) 2025-04-20 (Already online) ------------------------------------------------------------------------------------------------------------------ 1. [Supported card bins](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bins) interface is no longer maintained (API is always available); replaced by [Supported card bins-v2](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bins-v2) version; 2. Added [Wallet Deposit Transaction](https://wsb.gitbook.io/wasabicard-doc/api/account#wallet-deposit-transaction) interface; 3. Added [Card Holder notification](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-holder-transaction-notification) for Specific card BIN. [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2025-04-10-already-online) 2025-04-10 (Already online) ------------------------------------------------------------------------------------------------------------------ 1. Address request parameter verification adjustment for [creating and updating cardholder interface](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create) . 1. Original rule: only English characters are supported. \[Special characters supported, . - /\]; 2. Current rule: can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-20250314-yi-shang-xian) 2025-03-14(Already online) -------------------------------------------------------------------------------------------------------------- 1. Added [wallet recharge](https://wsb.gitbook.io/wasabicard-doc/api/account#wallet-deposit) interface. No need to manually place orders in the merchant backend; 2. Added [Common API module](https://wsb.gitbook.io/wasabicard-doc/api/common) , through which you can obtain the country/region, city, and mobile phone area code dictionary; 3. Updated the [demo package](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#demo) , and maintained excel and java-demo; 4. Creating a cardholder no longer requires verification of the uniqueness of the mobile phone number and email address; 5. Cardholder mobile phone area codes support a wider range. You can update and re-pull the [supported card BIN interface](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bins) to obtain; 6. Added a required parameter cardTypeId to the request parameters for [creating and updating cardholders](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create) . If the same cardholder information applies for cards with different card BINs, it is recommended to create them under different cardTypes. [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2024-12-17-already-online) 2024-12-17(Already online) ----------------------------------------------------------------------------------------------------------------- 1. Added [card 3ds record query](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-3ds-transaction) ; 2. Added [card 3ds record notification subscription](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-3ds-transaction-notificatoin) 3. Update [Card Info](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info) 、[Card Balance](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-balance) The field `usedAmount` is not required to be returned; 4. Update [create cardholder](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create) to add the request field cardTypeId; [](https://wsb.gitbook.io/wasabicard-doc/change-log#id-2024-12-11-already-online) 2024-12-11(Already online) ----------------------------------------------------------------------------------------------------------------- 1. Update [Supported card bins](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bins) to add the response field `depositAmountMaxQuotaForActiveCard`; 2. Update [Open Card](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#open-card) to add the request field `amount`; [PreviousWelcome](https://wsb.gitbook.io/wasabicard-doc) [NextQuick Start](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart) Last updated 16 days ago --- # Quick Start | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#endpoint) Endpoint ---------------------------------------------------------------------------------- https://sandbox-api-merchant.wasabicard.com You need to contact the open platform staff to add the merchant server's IP whitelist for prod env. [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#glossary) Glossary ---------------------------------------------------------------------------------- 1. `api-key`: Unique identifier of the merchant. 2. `public-key`: User's RSA public key. 3. `private-key`: User's RSA private key. 4. `wsb-public-key`: Platform RSA public key. The above parameters can be obtained and updated in the dashboard. [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#authentication) Authentication ---------------------------------------------------------------------------------------------- Use api-key to authenticate the request. User need to put `X-WSB-API-KEY` in the request header every time they make a request. [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#signature) Signature ------------------------------------------------------------------------------------ To ensure the security of API calls, each request and response needs to be verified for message integrity through signature. User requests API are signed with user's RSA private key and verified with merchant RSA public key; User requests responses are signed with platform RSA private key and verified with platform RSA public key; Notification subscriptions are signed with platform RSA private key and verified with platform RSA public key. The signing rules are as follows: 1. The merchant sends a request to the development platform, signs it with the `user's RSA private key`, and the open platform verifies the signature with the `user's RSA public key`; 2. The open platform interface responds and sends notifications to the merchant, signs it with the `platform's RSA private key`, and the merchant verifies the signature with the `platform's RSA public key`; 3. Signing is to encrypt the `HTTP request body`, and all requests are called using the POST method; 4. Use `sha256 RSA` to sign it and then use `base64` as the signature string; 5. Put the encrypted signature string signature in the HTTP header `X-WSB-SIGNATURE` field. If the interface does not require request parameters, please construct an empty JSON object for body for transmission and signing. [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#code) Code -------------------------------------------------------------------------- ResultData.class TwoTuple.class ToolUtil.class Copy package com.wsbcard.demo.model; import lombok.Data; import java.io.Serializable; /** * @author: test * @date: 2023/12/2 15:20 * @describe: */ @Data public class ResultData implements Serializable { private static final long serialVersionUID = 1L; private boolean success = true; private int code = 200; private String msg = "Success"; private T data; public boolean isSuccess() { return code == 200; } } Copy package com.wsbcard.demo.model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @Author: test * @date: 2024/8/4 14:28 * @describe: */ @Data @AllArgsConstructor @NoArgsConstructor public class TwoTuple implements Serializable { private R first; private S second; } Copy package com.wsbcard.demo; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.log.Log; import cn.hutool.log.LogFactory; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.wsbcard.demo.model.ResultData; import com.wsbcard.demo.model.TwoTuple; import lombok.SneakyThrows; import javax.crypto.Cipher; import java.io.ByteArrayOutputStream; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; import java.util.HashMap; import java.util.Map; /** * @Author: test * @date: 2025/9/27 13:47 * @describe: */ public class ToolUtil { private static final Log logger = LogFactory.get(); private static final int MAX_DECRYPT_BLOCK = 128; public static final String KEY_ALGORITHM = "RSA"; public static final String SIGNATURE_ALGORITHM_SHA256 = "SHA256withRSA"; public static final String HEADER_SIGNATURE = "X-WSB-SIGNATURE"; public static final String HEADER_API_KEY = "X-WSB-API-KEY"; public static final String ENDPOINT = "https://sandbox-api-merchant.wasabicard.com"; public static final String API_KEY = "c0f8eb09-4407-4f49-b49a-b2143b76989e-5f730e10-6fa9-4ee6-aee0-9259f6479a42"; public static final String PRIVATE_KEY = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJqlHaK7sct6ukEQv1N97+5LK+heHdq6Uc9NPUKlud+QRubFeyxzDWXPVnhFwcZq2euzxer7lr2vElUZUA/Bd+Wc8Omf21zU/B8BGoZAmcCTNcOOKCoTYkqO5IC8nd602vf14Fjnnhi1BZrfWaQZyzywFkYPn21RC2lEi0NdPHe9AgMBAAECgYBDacEehIW/9xMkdAGDiv3BukE8vXJ0PA6XuMsAt6/sVj+iL+o++TSY8iZ2raoILeIrjqWzhtMygxQRxsQQ6jyyTRNNnSw8gySdO1WwG5EwqBchgEtb09Eq986l5/UZ0yjq2CAkG4lksBn3rZFmjcD3V1qM3TfaaNrMJbg3keZ//QJBAMrjqpyvI8H3ZyL3LwVxjETrR2/ZPKewO8GRSFnfuK40IUTWgUhmeRIlP3hxnzCdJGbsV8pEL7stbUbyUIaA4dcCQQDDIGzJ5ZsjMQRSR3m8l7N5dPQbrx6/g7lA/njRLyC1vQQ4hnm1A6rFIKS9sxY9Vbo7FBUb43cknDZbO/E3QeiLAkBFh03BkjeD0j/y+JiRmf8C40pA50ZlBP0Fcb9EpWmJsW2xRH1bjVpyQHeG1BFEvKVr7BSNyV4+G+w2AvZbkbFTAkBeWWphAXXPQV9OjaMOjufIXcW/MSEUB5RnGeS/eSM+3UOSNWvaHAjRwqQF2fdx9ubStDY0wvsUJ7icytIrHuJbAkAE0wkNMqHqorTmjcv2wGnQS1XZghWNuZMdEj/2Ffz9y6LQtwqXDT/PqpdO5vySHr6w+GxLDpNPHb1TmxoVvuPb"; public static final String WSB_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyyPUFA1Zu2GFS2DdPL6xP5bGmPG9dFMSXpDy3GykW/lL4VR24UsjKs5h6g8OfSOuOze3yC4jWE/IBW5/L9xM9kGvFQK/S1zr44hMnDn+7S5MSi+jnZDRIrCRQJTqkwfpy39h2cQ4xlHKfbEjkkeo5ZQ0VFgRHYPr7b10l+3j8gwIDAQAB"; /** * http post * @param url * @param body * @return */ public static TwoTuple post(String url, String body) { try { String signature = signSha256(body, PRIVATE_KEY); Map headerMap = new HashMap<>(2); headerMap.put(HEADER_API_KEY, API_KEY); headerMap.put(HEADER_SIGNATURE, signature); HttpRequest httpRequest = HttpRequest.post(url).body(body); httpRequest.addHeaders(headerMap); HttpResponse response = httpRequest.execute(); logger.info("sendPostJson url {}, request:{}, response:{}", url, body, response.body()); return new TwoTuple<>(response.header(HEADER_SIGNATURE), response.body()); } catch (Exception e) { logger.error("error", e); } return null; } /** * Sign by share256 * @param data body * @param privateKey * @return * @throws Exception */ public static String signSha256(String data, String privateKey) throws Exception { byte[] keyBytes = Base64.getDecoder().decode(privateKey); PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); PrivateKey privateK = keyFactory.generatePrivate(pkcs8KeySpec); Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM_SHA256); signature.initSign(privateK); signature.update(data.getBytes(StandardCharsets.UTF_8)); return Base64.getEncoder().encodeToString(signature.sign()); } public static boolean verify(String data, String publicKey, String sign) throws Exception { byte[] keyBytes = Base64.getDecoder().decode(publicKey); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); PublicKey publicK = keyFactory.generatePublic(keySpec); Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM_SHA256); signature.initVerify(publicK); signature.update(data.getBytes(StandardCharsets.UTF_8)); return signature.verify(Base64.getDecoder().decode(sign)); } /** * verify signature * * @param result */ public static void verifySignature(TwoTuple result) throws Exception { ResultData resultData = JSON.parseObject(result.getSecond(), ResultData.class); if (resultData.isSuccess()) { boolean verify = verify(result.getSecond(), WSB_PUBLIC_KEY, result.getFirst()); logger.info("verify signature result:{}", verify); } } /** * Decrypt data using the private key * * @param encryptedData * @param privateKey * @return */ @SneakyThrows public static String decryptPrivateKey(String encryptedData, String privateKey) { if (encryptedData.contains("%")) { encryptedData = URLDecoder.decode(encryptedData, "UTF-8"); } byte[] rs = Base64.getDecoder().decode(encryptedData); return new String(decryptByPrivateKey(rs, privateKey), StandardCharsets.UTF_8); } /** * Decrypt data using the private key * * @param encryptedData * @param privateKey Private key (BASE64 encoded) */ @SneakyThrows public static byte[] decryptByPrivateKey(byte[] encryptedData, String privateKey) { byte[] keyBytes = Base64.getDecoder().decode(privateKey); PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); Key privateK = keyFactory.generatePrivate(pkcs8KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, privateK); int inputLen = encryptedData.length; ByteArrayOutputStream out = new ByteArrayOutputStream(); int offSet = 0; byte[] cache; int i = 0; // Decrypt data in segments 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 decryptedData; } public static void main(String[] args) throws Exception { /**************** call interface ****************/ String uri = "/merchant/core/mcb/card/v2/cardTypes"; TwoTuple result = post(ENDPOINT + uri, new JSONObject().toJSONString()); if (result != null) { verifySignature(result); } /**************** decryptData ****************/ String encryptedCvv = "h1J5ZnOiboxn/dkNg3hmIP0v1vfRUzkqRh3AULt9nTBNAtVwtTzWXkVN3alXqTGhavfRf11lfSyKDbKFg9G0woTdiyB/bRRQO0GECk3KWdbVIIpML1cwodb4kkcqOjfILg8qDLIJb+XJuKWpd8Ous4S8AQRtjjA2KeKqXNghvRM="; System.out.println("CVV:" + decryptPrivateKey(encryptedCvv, PRIVATE_KEY)); } } [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#java-demo) Java Demo ------------------------------------------------------------------------------------ Contains code information such as mobile area code, region, etc.; and java-demo 14MB [demo.zip](https://83277272-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK4pYjaHDLD6kKvvd7mig%2Fuploads%2FD2bcy9Xa8YxawRTK6JkZ%2Fdemo.zip?alt=media&token=8bc6cd79-676d-4c17-9c67-9a4d2f62227b) archive Download[Open](https://83277272-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK4pYjaHDLD6kKvvd7mig%2Fuploads%2FD2bcy9Xa8YxawRTK6JkZ%2Fdemo.zip?alt=media&token=8bc6cd79-676d-4c17-9c67-9a4d2f62227b) [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#request-template) Request Template -------------------------------------------------------------------------------------------------- `POST` `${uri}` **Headers** Name Value Content-Type `application/json` X-WSB-API-KEY `${api-key}` X-WSB-SIGNATURE `${signature}` [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#response-template) Response Template ---------------------------------------------------------------------------------------------------- **Headers** Name Value Content-Type `application/json` X-WSB-SIGNATURE `${signature}` **Response** Copy { "success": true, //True when code=200 "code": 200, "msg": "Success", "data": null } [](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart#response-code) Response Code -------------------------------------------------------------------------------------------- code Remark 200 Success 500 Internal service error. Please contact WasabiCard staff \-1 Business error code. This is a normal situation, for example, the user purchases more cards than the limit. 40002 Param error 40020 Duplicate order number 40021 Insufficient balance 50001 The api key and signature parameters are empty 50002 Signature verification failed 50003 Signature failed 50004 User does not exist [PreviousChange Log](https://wsb.gitbook.io/wasabicard-doc/change-log) [NextCard Issuance Process](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process) Last updated 29 days ago --- # Card Issuance Process | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process#virtual-card) Virtual Card ----------------------------------------------------------------------------------------------------- 1 **Get the Card BIN** Call the [**Support Bins**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) interface to get the relevant configuration of the card BIN; 2 **Create cardholder(option)** if needCardHolder = true for Support Bins interface, need create cardholder, and Support Bins interface response paramter metadata.cardHolderModel will return the mode B2B or B2C. **B2B, B2C This is merely an internally defined code identifier. It has no relation to company or individual.** User can use the `metadata.cardHolderModel` parameter in the \[[**Support Bins**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins)\ \] interface to confirm the cardholder creation method (`**B2B**` and `**B2C**` modes) and proceed to \[[**Cardholder-Create-v2**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2)\ \]. The cardholder approval progress can be obtained through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-holder-event)\ \] or \[[**Cardholder-list**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-list)\ \] interface. When the cardholder is approved, the next step will be taken. 3 **Create card** Call the \[[**Create Card-V2**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#create-card-v2)\ \] interface to purchase the card and create the card. The cardholder id needs to be included in the interface. You can get the card opening progress through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-operation-transaction-event)\ \] or \[[**Card Operation Transaction-V2**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-operation-transaction-v2)\ \]. 4 **Query card information** you can query the \[[**card info**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info)\ \] interface to get the basic information of the card by card no. Then query the \[[**Card Info For Sensitive**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive)\ \] interface to get card sensitive info. [](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process#physical-card) Physical Card ------------------------------------------------------------------------------------------------------- 1 **Purchase card offline** The customer contacts the BD to purchase cards offline in bulk and pays the advance payment. The account manager mails the printed cards to the customer (the customer can know the real card number in this step). 2 **Selling cards** The customer sells cards to your's users. 3 **Get Card BIN** Call the [**Support Bins**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) interface to get the relevant configuration of the card BIN; 4 **Create cardholder** if needCardHolder = true for Support Bins interface, need create cardholder. Support Bins interface response paramter metadata.cardHolderModel will return the mode B2B or B2C **B2B, B2C This is merely an internally defined code identifier. It has no relation to company or individual.** User can use the `metadata.cardHolderModel` parameter in the \[[**Support Bins**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins)\ \] interface to confirm the cardholder creation method (`**B2B**` and `**B2C**` modes) and proceed to \[[**Cardholder-Create-v2**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2)\ \]. The cardholder approval progress can be obtained through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-holder-event)\ \] or \[[**Cardholder-list**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-list)\ \] interface. When the cardholder is approved, the next step will be taken. 5 **Create card (assign card number)** Call the \[[**Create Card-V2**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#create-card-v2)\ \] interface to purchase the card and create the card. The cardholder id needs to be included in the interface. You can get the card opening progress through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-operation-transaction-event)\ \] or \[[**Card Operation Transaction-V2**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-operation-transaction-v2)\ \]. 6 **Receive activation code** After calling the create card, the card activation code will be pushed through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-3ds-transaction-event)\ **\]**; at the same time, the activation code will also be sent to the cardholder's mailbox (you can confirm with the account manager whether wasabi needs to send an email to the cardholder). You can obtain it through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-3ds-transaction-event)\ \] or \[[**query activation code**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-3ds-transaction)\ \] 7 **Query card information** You can query the \[[**card info**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info)\ \] interface to get the basic information of the card by card no. (at this time, the card status is not activated, and the card private information cannot be obtained. card number, cvv, expire date). Then query the \[[**Card Info For Sensitive**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive)\ \] interface to get card sensitive info when active card. 8 **Card activation** Call the \[[**Activate Card**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#activate-card-physical)\ \] interface to activate the card. 9 **Query card information** query the \[[**Card Info For Sensitive**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive)\ \] interface to get card sensitive info when active card. [](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process#gift-card) Gift Card ----------------------------------------------------------------------------------------------- Gift card not return card number, cvv, expire date, only return activateUrl and user can see all card info and transactions in redemptionUrl domain. and not support deposit, withdraw, freeze, unfreeze api. 1 **Get the Card BIN** Call the [**Support Bins**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) interface to get the relevant configuration of the card BIN; 2 **Create cardholder(option)** if needCardHolder = true for Support Bins interface, need create cardholder, and Support Bins interface response paramter metadata.cardHolderModel will return the mode B2B or B2C **B2B, B2C This is merely an internally defined code identifier. It has no relation to company or individual.** User can use the `metadata.cardHolderModel` parameter in the \[[**Support Bins**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins)\ \] interface to confirm the cardholder creation method (`**B2B**` and `**B2C**` modes) and proceed to \[[**Cardholder-Create-v2**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2)\ \]. The cardholder approval progress can be obtained through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-holder-event)\ \] or \[[**Cardholder-list**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-list)\ \] interface. When the cardholder is approved, the next step will be taken. 3 **Create card** Call the \[[**Create Card-V2**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#create-card-v2)\ \] interface to create the card. The cardholder id needs to be included in the interface. You can get the card opening progress through \[[**webhook**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-operation-transaction-event)\ \] or \[[**Card Operation Transaction-V2**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-operation-transaction-v2)\ \]. 4 **Query card information** You can query the \[[**card info**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info)\ \] interface to get the basic information of the card by card no. Then query the \[[**Card Info For Sensitive**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive)\ \] interface to get card sensitive info (**only return activateUrl parameter**). [PreviousQuick Start](https://wsb.gitbook.io/wasabicard-doc/guides/quickstart) [NextCOMMON](https://wsb.gitbook.io/wasabicard-doc/api/common) Last updated 29 days ago --- # CARD | WasabiCard [Cards](https://wsb.gitbook.io/wasabicard-doc/api/card/cards) [Card holder](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder) [PreviousACCOUNT](https://wsb.gitbook.io/wasabicard-doc/api/account) [NextCards](https://wsb.gitbook.io/wasabicard-doc/api/card/cards) --- # ACCOUNT | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/api/account#assets) Assets ------------------------------------------------------------------------ Copy POST /merchant/core/mcb/account/info **Request** Param Type Require Remark **Response** Param Type Require Remark accountId Long true Account id currency String true Currency totalBalance BigDecimal true Total Balance availableBalance BigDecimal true Available balance frozenBalance BigDecimal true Freeze Balance digital Long true Digital **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "accountId": 59131,\ "currency": "USD",\ "totalBalance": 100,\ "availableBalance": 100,\ "frozenBalance": 0,\ "digital": 2\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/account#get-wallet-deposit-address) Get Wallet Deposit Address ---------------------------------------------------------------------------------------------------------------- Call this interface to place an order for wallet recharge. It will return the order number, wallet address (currently only supports trc20-usdt), and the amount to be deposit. Copy POST /merchant/core/mcb/account/walletDeposit **Request** Param Type Required Remark chain String false Network chain. default: TRC20 `TRC20` `BEP20` amount BigDecimal true Deposit amount **Response** Param Type Required Remark orderNo String true Transaction id userInputDepositAmount BigDecimal true The deposit amount input by the user actualDepositAmount BigDecimal true The actual amount to be recharged. A decimal may be generated based on userInputDepositAmount currency String true currency chain String true Network chain toAddress String true Wallet deposit address createTime Long true Order time. Timestamp expireSecond Long true Validity period (unit: seconds) **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "CND1896547520597221376", "userInputDepositAmount": 20, "actualDepositAmount": 20.0377, "currency": "USDT", "chain": "TRC20", "toAddress": "TF9fZHD27TmEznSRHcirWkXj2asg24kl3jg", "createTime": 1741007139000, "expireSecond": 10800 } } [](https://wsb.gitbook.io/wasabicard-doc/api/account#wallet-deposit-transaction) Wallet Deposit Transaction ---------------------------------------------------------------------------------------------------------------- **Note:** that if status=fail is not considered the final state, we can manually enter the final status=success (this is a possibility). Copy POST /merchant/core/mcb/account/walletDepositTransaction **Request** Param Type Required Remark pageNum Long true Current page. Default: 1 pageSize Long true Number of pages per page. Default: 10; Maximum: 100 orderNo String false Transaction id fromAddress String false Source address toAddress String false Target address txId String false Tx hash status String false Status `wait_process`: Wait process; `processing`: Processing; `success`: Success; `fail`: Failed; startTime Long false Order start time. Millisecond timestamp endTime Long false Order end time. Millisecond timestamp Response Param Type Required Remark orderNo String true Transaction id needDepositTxAmount BigDecimal true Order Amount txAmount BigDecimal false On-chain deposit amount feeRate BigDecimal true Deposit fee rate. Example: 1 = 1% feeRateAmount BigDecimal true Deposit fee rate amount fixedFee BigDecimal true Fixed deposit fee amount currency String true Currency. Example: USDT receivedAmount BigDecimal false Received amount receivedCurrency String false Received currency chain String true Chain. Example: TRC20 fromAddress String false Source address toAddress String true Target address txId String false Tx hash block Integer false Block Height confirmTime Long false Transaction confirmation time on the chain. Millisecond timestamp type String true Type `chain_deposit`: On-chain deposit status String true Status `wait_process`: Pending; `processing`: Processing; `success`: Success; `fail`: Failed; remark String false Remark createTime Long true Order create time. Millisecond timestamp updateTime Long true Order update time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "SUCCESS", "data": { "total": 25, "records": [\ {\ "orderNo": "CND1985645689502720000",\ "needDepositTxAmount": 20,\ "txAmount": 20,\ "feeRate": 1.5,\ "fee": 0.3,\ "fixedFee": 0,\ "currency": "USDT",\ "receivedAmount": 19.7,\ "receivedCurrency": "USD",\ "chain": "TRC20",\ "fromAddress": "TVwdXFHzD5mJP52xkxtRfVCLrWNaLGiiaB",\ "toAddress": "TF9fZHk27TmEznSRHiirWkX23zbZJC299M",\ "txId": "b5eccb05e227fab979182905e3ff1ec8a0995f43bc407aaaaaaaaaaaaaaa",\ "block": 65567635,\ "confirmTime": 1727351235000,\ "type": "chain_deposit",\ "status": "success",\ "remark": "Chain deposit",\ "createTime": 1762249798000,\ "updateTime": 1762249920000\ }\ ] } } [PreviousCOMMON](https://wsb.gitbook.io/wasabicard-doc/api/common) [NextCARD](https://wsb.gitbook.io/wasabicard-doc/api/card) Last updated 9 days ago --- # COMMON | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/api/common#country-region-list) Country/Region List ------------------------------------------------------------------------------------------------- This interface is updated very infrequently, so please localize the data before calling it. Copy POST /merchant/core/mcb/common/region **Request** param Type Required Remark **Response** Param Type Required Remark code String true Country/Region code ISO 3166-1 alpha-_2_ standardCode String true Country/Region code ISO 3166-1 alpha-3 name String true Country/Region name **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "code": "AU",\ "standardCode": "AUS",\ "name": "Australia"\ },\ {\ "code": "BD",\ "standardCode": "BGD",\ "name": "Bangladesh"\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) City List ----------------------------------------------------------------------------- This interface is updated very infrequently, so please localize the data before calling it. Copy POST /merchant/core/mcb/common/city **Request** param Type Required Remark regionCode String false Country/Region code ISO 3166-1 alpha-_2_ **Response** Param Type Required Remark code String true city code name String true city name country String true Country/Region code ISO 3166-1 alpha-_2_ countryStandardCode String true Country/Region code ISO 3166-1 alpha-3 **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "code": "AU_01",\ "name": "test",\ "country": "AU",\ "countryStandardCode": "AUS"\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list-hierarchical-relationship) City list (hierarchical relationship) ----------------------------------------------------------------------------------------------------------------------------------- It includes two levels: province/state/region and city. This interface is updated very infrequently, so please localize the data before calling it. Copy POST /merchant/core/mcb/common/v2/city **Request** param Type Required Remark regionCode String false Country/Region code ISO 3166-1 alpha-_2_ **Response** Param Type Required Remark code String true city code name String true city name country String true Country/Region code ISO 3166-1 alpha-_2_ countryStandardCode String true Country/Region code ISO 3166-1 alpha-3 parentCode String true Parent code children List true children city list children\[0\].code String true city code children\[0\].name String true city name children\[0\].country String true Country/Region code ISO 3166-1 alpha-_2_ children\[0\].countryStandardCode String true Country/Region code ISO 3166-1 alpha-3 children\[0\].parentCode String true Parent code children\[0\].children String true children city list **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "code": "AU-ACT",\ "name": "Australian Capital Territory",\ "parentCode": "0",\ "country": "AU",\ "countryStandardCode": "AUS",\ "children":\ [\ {\ "code": "AU-ACT-80100",\ "name": "Australian Capital Territory (Canberra)",\ "parentCode": "AU-ACT",\ "country": "AU",\ "countryStandardCode": "AUS",\ "children":\ []\ }\ ]\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/common#mobile-code-list) Mobile Code List ------------------------------------------------------------------------------------------- This interface is updated very infrequently, so please localize the data before calling it. Copy POST /merchant/core/mcb/common/mobileAreaCode **Request** param Type Required Remark **Response** Param Type Required Remark code String true Mobile code. example: +1 name String true Region name. example: Canada areaCode String true Region Code ISO 3166-1 alpha-2. example: CA language String true Region language. `zh_CN` `en_US` enableGlobalTransfer Boolean true Is Global Transfer Available **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "code": "+1",\ "name": "Canada",\ "areaCode": "CA",\ "language": "en_US",\ "enableGlobalTransfer": true\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) Upload File --------------------------------------------------------------------------------- **content-type=multipart/form-data**; please generate an empty object for signature for this interface Only jpg, png, and pdf formats are supported; the file size cannot exceed 2M Copy POST /merchant/core/mcb/common/file/upload **Request** param Type Required Remark category String true Please use the value: card file File true File **Response** Param Type Required Remark fileId String true File id **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "fileId": "c7bf3c1b-25d1-4b75-b519-1e6bf383d0a7" } } [](https://wsb.gitbook.io/wasabicard-doc/api/common#submit-work-order) Submit Work Order --------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/work/submit **Request** param Type Required Remark merchantOrderNo String true Client transaction id. length\[20...40\] title String true Title. length\[1...255\] target String true Target. length\[1...255\]. If the card is manually activated, please fill in the card number content String false Content. length\[0...1000\] files List false File ID. Call [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to get tradeType String true Type. `CARD_ACTIVE`: Card activation; `OTHER`: Other **Response** Param Type Required Remark merchantOrderNo String true Client transaction id orderNo String true Transaction id title String true Title target String true Target content String false Content tradeType String true Type. `CARD_ACTIVE`: Card activation; `OTHER`: Other tradeStatus String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String false Remark createTime Long true Millisecond timestamp updateTime Long true Millisecond timestamp **Example Response** Copy { "merchantOrderNo": "13243897979979797999008085", "orderNo": "WORK-2025080719534", "title": "ApplePay", "target": "5533700042831234", "content": "Active", "tradeType": "CARD_ACTIVE", "tradeStatus": "processing", "remark": null, "createTime": 1754607865000, "updateTime": 1754648044000 } [](https://wsb.gitbook.io/wasabicard-doc/api/common#work-order-list) Work Order List ----------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/work/list **Request** param Type Required Remark merchantOrderNo String false Transaction id orderNo String false Client transaction id target String false Target tradeType String false Type. `CARD_ACTIVE`: Card activation; `OTHER`: Other tradeStatus String false Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure **Response** Param Type Required Remark merchantOrderNo String true Client transaction id orderNo String true Transaction id title String true Title target String true Target content String false Content tradeType String true Type. `CARD_ACTIVE`: Card activation; `OTHER`: Other tradeStatus String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure description String false Description remark String false Remark. equal description. will remove createTime Long true Millisecond timestamp updateTime Long true Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "SUCCESS", "data": { "total": 1, "records": [\ {\ "merchantOrderNo": "13243897979979797999008085",\ "orderNo": "WORK-202508071953472304731676672",\ "title": "ApplePay",\ "target": "5533700042831234",\ "content": "Active",\ "tradeType": "CARD_ACTIVE",\ "tradeStatus": "success",\ "description": "SUCCESS",\ "remark": null,\ "createTime": 1754607865000,\ "updateTime": 1754648044000\ }\ ] } } [PreviousCard Issuance Process](https://wsb.gitbook.io/wasabicard-doc/guides/card-issuance-process) [NextACCOUNT](https://wsb.gitbook.io/wasabicard-doc/api/account) Last updated 1 month ago --- # Welcome | WasabiCard Welcome to the Open API documentation. We recommend that you read the API documentation in detail to familiarize yourself with the product-related functions and workflows. [NextChange Log](https://wsb.gitbook.io/wasabicard-doc/change-log) Last updated 1 month ago --- # Cards | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) Support Bins --------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/v2/cardTypes **Request** Param Type Require Remark **Response** Param Type Required Remark cardTypeId Long true Card type id organization String true Card organization. `Visa` `MasterCard` `Discover` country String true Issue country. example: US bankCardBin String true Card Bin. example: 531993 type String true Card type. `Virtual` `Physical` cardName String true Card name cardDesc String true Card desc cardPrice BigDecimal true Card fee. example: 5 cardPriceCurrency String true Card fee currency. example: USD support List true Supporting merchant. For reference only risk List true High risk merchant. Consumption in this scenario will trigger card cancellation risk control needCardHolder Boolean true Cardholder is required. If it is equal to true, Need to call the \[[**cardholder create -v2**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2)\ \] interface and create cardholder supportHolderRegin List true Nationality. country/region code of the cardholder supported. ISO 3166-1 alpha-_2_ supportHolderAreaCode List true Mobile area code supported by the cardholder needDepositForActiveCard Boolean true When you create card, you need to deposit depositAmountMinQuotaForActiveCard BigDecimal true Minimum deposit amount when create card depositAmountMaxQuotaForActiveCard BigDecimal true Maximum deposit amount when create card fiatCurrency String true Card currency. example: USD balanceRetentionQuota BigDecimal true Minimum balance to retain when calling the withdrawal API status String true Status. `online` `offline` rechargeCurrency String true Deposit currency rechargeMinQuota BigDecimal true Minimum deposit amount rechargeMaxQuota BigDecimal true Maximum deposit amount rechargeFeeRate BigDecimal true Deposit fee rate. 1=1% rechargeFixedFee BigDecimal true Fixed deposit fee rechargeDigital Integer true The length of the decimal point of the amount when deposit enableActiveCard Boolean true Enable the create card function enableDeposit Boolean true Enable the deposit card function enableFreeze Boolean true Enable the freeze card function enableUnFreeze Boolean true Enable the unfreeze card function metadata Object true Meta data metadata.cardHolderMaxCardLimit Integer true **First** **needCardHolder equal true:** Maximum number of cards a cardholder can own metadata.cardHolderModel String true Cardholder model. `B2B` `B2C` **First** **needCardHolder equal true:** cardholder needs to be created, and different cardholder parameters need to be passed according to B2B or B2C. call the \[[**cardholder create -v2**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2)\ \] interface and create cardholder The value is merely an internally defined code identifier. It has no relation to company or individual. metadata.supportSettingNoPinPaymentAmount Boolean false Set the amount limit for password-free payment (Physical card) metadata.defaultNoPinPaymentAmount BigDecimal false Default amount for password-free payment(Physical card) metadata.noPinPaymentAmountMinQuota BigDecimal false Minimum amount for password-free payment(Physical card) metadata.noPinPaymentAmountMaxQuota BigDecimal false Maximum amount for password-free payment(Physical card) **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "cardTypeId": 111002,\ "organization": "Visa",\ "country": "US",\ "bankCardBin": "531993",\ "type": "Virtual",\ "typeStr": "Virtual Card",\ "cardName": "531993",\ "cardDesc": "Adobe,Aliexpress,Amazon.(Not support PayPal, Grab, ONLYFANS, Patreon, Etsy商户消费,否则会立刻销卡并冻结;需要Apple服务可选择5319卡片;)",\ "cardPrice": "10",\ "cardPriceCurrency": "USD",\ "support":\ [\ "Adobe",\ "Aliexpress"\ ],\ "risk":\ [\ "BOLT.EU",\ "shenzhenshifenqil"\ ],\ "supportHolderRegin":\ [\ "US"\ ],\ "supportHolderAreaCode":\ [\ "+60",\ "+1"\ ],\ "needCardHolder": false,\ "needDepositForActiveCard": true,\ "depositAmountMinQuotaForActiveCard": "10",\ "depositAmountMaxQuotaForActiveCard": "100000",\ "fiatCurrency": "USD",\ "balanceRetentionQuota": 5,\ "status": "online",\ "rechargeCurrency": "USD",\ "rechargeMinQuota": 20,\ "rechargeMaxQuota": 100000,\ "rechargeFeeRate": 1,\ "rechargeFixedFee": 0,\ "rechargeDigital": 2,\ "enableActiveCard": true,\ "enableDeposit": true,\ "enableFreeze": true,\ "enableUnFreeze": true,\ "metadata": {\ "cardHolderMaxCardLimit": 5,\ "cardHolderModel": "B2B",\ "supportSettingNoPinPaymentAmount": true,\ "defaultNoPinPaymentAmount": 500,\ "noPinPaymentAmountMinQuota": 0,\ "noPinPaymentAmountMaxQuota": 2000\ }\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#create-card) Create Card ------------------------------------------------------------------------------------- CardNo will be returned only when the card is successfully opened (status=success) Copy POST /merchant/core/mcb/card/openCard **Request** Param Type Required Remark merchantOrderNo String true Client transaction id. length\[20...40\] holderId Long false Cardholder id cardTypeId Long true Card type id amount BigDecimal false The deposit amount of when create the card. If not passed, the default value is equal to depositAmountMinQuotaForActiveCard (if the card BIN requires a first deposit) Value range: /merchant/core/mcb/card/cardTypes interface depositAmountMinQuotaForActiveCard <= amount <= depositAmountMaxQuotaForActiveCard cardNumber String false Card number. Need to pass when create a physical card **Response** Param Type Required Rmark orderNo String true Transaction id merchantOrderNo String true Client transaction id cardNo String false Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal true Received Amount receivedCurrency String true Received Currency type String true Type. `create`: Create Card status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String true Remark transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "orderNo": "1852379830190366720",\ "merchantOrderNo": "T1852379826671345664",\ "cardNo": null,\ "currency": "USD",\ "amount": "15",\ "fee": "0",\ "receivedAmount": "0",\ "receivedCurrency": "USD",\ "type": "create",\ "status": "processing",\ "remark": null,\ "transactionTime": 1730476741729\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#create-card-v2) Create Card-V2 ------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/v2/createCard **Request** Param Type Required Remark merchantOrderNo String true Client transaction id. length\[20...40\] holderId Long false Cardholder id cardTypeId Long true Card type id amount BigDecimal true The deposit amount of when create the card. depositAmountMinQuotaForActiveCard (if the card BIN requires a first deposit) Value range: /merchant/core/mcb/card/v2/cardTypes interface depositAmountMinQuotaForActiveCard <= amount <= depositAmountMaxQuotaForActiveCard cardNumber String false Card number. Required when create physical card **Response** Param Type Required Rmark orderNo String true Transaction id merchantOrderNo String true Client transaction id cardNo String true Card id currency String true Currency amount BigDecimal true Amount. Initial deposit amount fee BigDecimal true Fee. Initial deposit amount fee receivedAmount BigDecimal false Received Amount. Initial deposit amount receivedCurrency String false Received Currency type String true Type. `create`: Create Card status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure description String false Description remark String false Remark. equal description, will remove transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "WB2025103119841257038691924352", "currency": "USD", "amount": 20, "fee": 0.1, "receivedAmount": 0, "receivedCurrency": "USD", "type": "create", "status": "wait_process", "description": null "remark": null, "transactionTime": 1730476741729 } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info) Card Info --------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/info **Request** Param Type Required Remark cardNo String true Card id onlySimpleInfo Boolean false Whether to return only the basic information of the card. Does not include the balance. Default is true **Response** Param Type Required Remark cardTypeId Long true Card type id holderId Long false Cardholder id cardNo String true Card id ~cardNumber~ String true Card Number ~cvv~ String true cvv. The user's public key is encrypted and returned, and the merchant's private key is used to decrypt ~validPeriod~ String true Validity period. The user's public key is encrypted and returned, and the merchant's private key is used to decrypt status String true Status. `pending`: Pending `un_activated`: Waiting for activation; `Normal`: Normal; `Freeze`: Freeze; `Freezing`: Freezing; `UnFreezing`: Unfreezing `canceling`:Canceling `cancel`:Canceled blocked Boolean true `true` or `false`. Card be blocked bindTime Long true Card create time. Millisecond timestamp remark String false Remark balanceInfo Object false Card balance information balanceInfo.cardNo String true Card id balanceInfo.amount BigDecimal true Available balance balanceInfo.usedAmount BigDecimal true Amount used. some cards bin not support balanceInfo.currency String true Currency **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "holderId": 10090, "cardNo": "FC202408181555232422322004", "cardNumber": "202404000000000083", "cvv": "bQoXms9ScNxy37b1JgyP1tJuFiAcGl6d+7jqn7LTZRzQMXjn00zaa/xKJp/8sotkcBjl/L/6LSImxhnF+yg6V3aDft+v1ikkYBdY9Wco042o/uPyUNtr0xW786ENyB8Z84teK3vWtLeU/TbixEygxrxl/ilE+COmJOItWCGE6bs=", "validPeriod": "gQldrvKSV3cWXuCbrUgtVF5EsCgxEAZQuivEuddeoo5M+5bF0AiJJbw8PWvvZZerRmcOmv/0dRv8uyeaSbUmCyQrDn6cploG60lCxGfnzSopv5pEO4UrK071tNzIa++mZ4IZ4tvtlMYlwo+y3d9JhIareLM21E1mH7aPn+WOk50=", "status": "cancel", "bindTime": 1723997214000, "remark": null, "balanceInfo": { "cardNo": "FC202408181555232422322004", "amount": 10, "usedAmount": 1, "currency": "USD" } } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-info-for-sensitive) Card Info For Sensitive ------------------------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/sensitive **Request** Param Type Required Remark cardNo String true Card id **Response** Param Type Required Remark cardNumber String true Card number.The user's public key is encrypted and returned, and the merchant's private key is used to decrypt. **Gift card not return.** cvv String true CVV. The user's public key is encrypted and returned, and the merchant's private key is used to decrypt. **Gift card not return.** expireDate String true Expire date. The user's public key is encrypted and returned, and the merchant's private key is used to decrypt. **Gift card not return.** activateUrl String false Card url. The user's public key is encrypted and returned, and the merchant's private key is used to decrypt. **Gift card will return.** **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "cardNumber": "bQoXms9ScNxy37b1JgyP1tJuFiAcGl6d+7jqn7LTZRzQMXjn00zaa/xKJp/8sotkcBjl/L/6LSImxhnF+yg6V3aDft+v1ikkYBdY9Wco042o/uPyUNtr0xW786ENyB8Z84teK3vWtLeU/TbixEygxrxl/ilE+COmJOItWCGE6bs=", // 689 "cvv": "bQoXms9ScNxy37b1JgyP1tJuFiAcGl6d+7jqn7LTZRzQMXjn00zaa/xKJp/8sotkcBjl/L/6LSImxhnF+yg6V3aDft+v1ikkYBdY9Wco042o/uPyUNtr0xW786ENyB8Z84teK3vWtLeU/TbixEygxrxl/ilE+COmJOItWCGE6bs=", // 09/2028 "expireDate": "gQldrvKSV3cWXuCbrUgtVF5EsCgxEAZQuivEuddeoo5M+5bF0AiJJbw8PWvvZZerRmcOmv/0dRv8uyeaSbUmCyQrDn6cploG60lCxGfnzSopv5pEO4UrK071tNzIa++mZ4IZ4tvtlMYlwo+y3d9JhIareLM21E1mH7aPn+WOk50=", // https://merchantdomain.com/card/jaognaogangoanwgawgawgagagagag "activateUrl": "gQldrvKSV3cWXuCbrUgtVF5EsCgxEAZQuivEuddeoo5M+5bF0AiJJbw8PWvvZZerRmcOmv/0dRv8uyeaSbUmCyQrDn6cploG60lCxGfnzSopv5pEO4UrK071tNzIa++mZ4IZ4tvtlMYlwo+y3d9JhIareLM21E1mH7aPn+WOk50=" } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-balance) Card Balance --------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/balanceInfo **Reuqest** Param Type Required Remark cardNo String true Card id **Response** Param Type Required Remark cardNo String true Card id amount BigDecimal true Available balance usedAmount BigDecimal true Amount used. some cards bin not support currency String true Currency **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "cardNo": "FC202408181555232422322004", "amount": 10, "usedAmount": 1, "currency": "USD" } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#freeze-card-v2) Freeze Card-V2 ------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/v2/freeze **Request** Param Type Required Remark cardNo String true Card id merchantOrderNo String true Client transaction id. length\[20...40\] clientRemark String false Client remark. length\[0...50\] **Response** Param Type Required Remark orderNo String true Transaction id merchantOrderNo String true Client transaction id cardNo String true Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal false Amount received. status=success returns receivedCurrency String false The currency of the account. status=success is returned type String true Type. `Freeze`: Freeze status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String false Transaction Notes transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "38928421021320391244", "currency": "USD", "amount": 0, "fee": 0, "receivedAmount": 0, "receivedCurrency": "USD", "type": "Freeze", "status": "processing", "remark": "Freeze", "transactionTime": 1730476742000 } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#unfreeze-card-v2) UnFreeze Card-V2 ----------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/v2/unfreeze **Request** Param Type Required Remark cardNo String true Card id merchantOrderNo String true Client transaction id. length\[20...40\] clientRemark String false Client remark. length\[0...50\] **Response** Param Type Required Remark orderNo String true Transaction id merchantOrderNo String true Client transaction id cardNo String true Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal false Amount received. status=success returns receivedCurrency String false The currency of the account. status=success is returned type String true Type. `UnFreeze`: UnFreeze status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String false Transaction Notes transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "38928421021320391244", "currency": "USD", "amount": 0, "fee": 0, "receivedAmount": 0, "receivedCurrency": "USD", "type": "UnFreeze", "status": "processing", "remark": "UnFreeze", "transactionTime": 1730476742000 } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#deposit-card) Deposit Card --------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/deposit **Request** Param Type Required Remark cardNo String true Card ID merchantOrderNo String true Client transaction id. length\[20...40\] amount BigDecimal true Deposit amount **Response** Param Type Required Remark orderNo String true Transaction id merchantOrderNo String true Client transaction id cardNo String true Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal false Amount received. status=success returns receivedCurrency String false The currency of the account. status=success is returned type String true Type. `deposit`: Deposit status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String false Transaction Notes transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "38928421021320391244", "currency": "USD", "amount": 15, "fee": 0, "receivedAmount": 0, "receivedCurrency": "USD", "type": "deposit", "status": "processing", "remark": "Card Deposit", "transactionTime": 1730476742000 } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#activate-card-physical) Activate Card (physical) ------------------------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/physicalCard/activeCard **Request** Param Type Required Remark merchantOrderNo String true Client transaction id. length\[20...40\] cardNo String true Card id pin String true Card password. 6 digits, User-defined activeCode String true Activation code noPinPaymentAmount BigDecimal false The amount of payment without PIN. 0~2000USD, default 500USD **Response** Param Type Required Remark merchantOrderNo String true Client transaction id cardNo String true Card id type String true Type `card_activated` :Activate Card status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String true Remark **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "merchantOrderNo": "35nigjaongaognaeorig", "cardNo": "jojaga3-35mg-35saga-3535dfg", "type": "card_activated", "status": "success", "remark": null } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#update-pin-physical) Update PIN (physical) ------------------------------------------------------------------------------------------------------- Update physical card PIN Copy POST /merchant/core/mcb/card/physicalCard/updatePin **Request** Param Type Required Remark cardNo String true Card id merchantOrderNo String true Client transaction id. length\[20...40\] pin String true PIN. 6 digits **Response** Param Type Required Remark orderNo String true Transaction id merchantOrderNo String false Client transaction id cardNo String false Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal false Received Amount receivedCurrency String false Received Currency type String true Type. `update_pin`: Update PIN status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure remark String false Remark transactionTime Long true Transaction time. Millisecond timestamp **响应示例** Copy { "success": true, "code": 200, "msg": "Success", "data": { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "38928421021320391244", "currency": "USD", "amount": 0, "fee": 0, "receivedAmount": 0, "receivedCurrency": "USD", "type": "update_pin", "status": "processing", "remark": "", "transactionTime": 1730476742000 } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-purchase-transaction) Card Purchase Transaction ----------------------------------------------------------------------------------------------------------------- Card purchase transactions. Returns records related to card fees and initial deposit amounts. This interface does not support webhooks. Copy POST /merchant/core/mcb/card/purchaseTransaction **Request** Param Type Required Remark pageNum Integer true Current page. Default is 1 pageSize Integer true Number of pages per page. Default 10, maximum 100 merchantOrderNo String false Client transaction id orderNo String false Transaction id startTime Long false Start trading time. Milliseconds timestamp endTime Long false End trading time. Millisecond timestamp **Response** Param Type Required Remark orderNo String true Transaction id merchantOrderNo String false Client transaction id cardTypeId Long true Card type id cardType String true `Virtual` `Physical` organization String true `Visa` `MasterCard` `Discover` bankCardBin String true Card Bin. Example: 531993 currency String true Currency cardFee BigDecimal true Card fee depositAmount BigDecimal true Initial deposit amount status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "total": 1, "records": [\ {\ "orderNo": "1852379830190366720",\ "merchantOrderNo": "T1852379826671345664",\ "cardTypeId": 111001,\ "cardType": "Virtual",\ "organization": "Visa",\ "bankCardBin": "531993",\ "currency": "USD",\ "cardFee": 5,\ "depositAmount": 20,\ "status": "success",\ "transactionTime": 1730476742000\ }\ ] } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-operation-transaction) Card Operation Transaction ------------------------------------------------------------------------------------------------------------------- [**Webhook link**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-operation-transaction-event) Copy POST /merchant/core/mcb/card/transaction **Request** Param Type Required Remark pageNum Integer true Current page. Default is 1 pageSize Integer true Number of pages per page. Default 10, maximum 100 type String true Type. `create`: Create Card; `deposit`: Deposit Card; `cancel`: Cancel Card; `Freeze`: Freeze Card; `UnFreeze`: UnFreeze Card; `withdraw`: Withdraw Card; `update_pin`: Update PIN `blocked`: Block Card merchantOrderNo String false Client transaction id orderNo String false Transaction id cardNo String false Card id startTime Long false Start trading time. Milliseconds timestamp endTime Long false End trading time. Millisecond timestamp **Response** Param Type Required Remark orderNo String true Transaction id originOrderNo String false Origin Transaction order number merchantOrderNo String false Client transaction id cardNo String false Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal false Received Amount receivedCurrency String false Received Currency type String true Type. `create`: Create Card; `deposit`: Deposit Card; `cancel`: Cancel Card; `Freeze`: Freeze Card; `UnFreeze`: UnFreeze Card; `withdraw`: Withdraw Card; `update_pin`: Update PIN `blocked`: Block Card subType String false Sub type. `DEFAULT`: Default `REFUND`: Card balance refund.This generally refers to a refund initiated by the merchant after the card is cancelled. Because the card is cancelled, the balance cannot be refunded to the card itself and needs to be withdrawn to the customer's wallet. status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure description String false Description remark String false Remark, equal description. will remark transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "total": 1, "records": [\ {\ "orderNo": "1852379830190366720",\ "merchantOrderNo": "T1852379826671345664",\ "cardNo": "AA2025032942035903249258024",\ "currency": "USD",\ "amount": 15,\ "fee": 1.5,\ "receivedAmount": 15,\ "receivedCurrency": "USD",\ "type": "deposit",\ "status": "success",\ "description": null,\ "remark": null,\ "transactionTime": 1730476742000\ }\ ] } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-operation-transaction-v2) Card Operation Transaction-V2 ------------------------------------------------------------------------------------------------------------------------- If you create card using the /merchant/core/mcb/card/openCard interface, there will be no create record in this interface (it has been moved to the Card Purchase Transaction interface). [**Webhook link**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-operation-transaction-event) Copy POST /merchant/core/mcb/card/v2/transaction **Request** Param Type Required Remark pageNum Integer true Current page. Default is 1 pageSize Integer true Number of pages per page. Default 10, maximum 100 type String false Type. `create`: Create Card; `deposit`: Deposit Card; `cancel`: Cancel Card; `Freeze`: Freeze Card; `UnFreeze`: UnFreeze Card; `withdraw`: Withdraw Card; `update_pin`: Update PIN `blocked`: Block Card merchantOrderNo String false Client transaction id orderNo String false Transaction id cardNo String false Card id startTime Long false Start trading time. Milliseconds timestamp endTime Long false End trading time. Millisecond timestamp **Response** Param Type Required Remark orderNo String true Transaction id originOrderNo String false Origin Transaction No merchantOrderNo String false Client transaction id cardNo String false Card id currency String true Currency amount BigDecimal true Amount fee BigDecimal true Fee receivedAmount BigDecimal false Received Amount receivedCurrency String false Received Currency type String true Type. `create`: Create Card; `deposit`: Deposit Card; `cancel`: Cancel Card; `Freeze`: Freeze Card; `UnFreeze`: UnFreeze Card; `withdraw`: Withdraw Card; `update_pin`: Update PIN `blocked`: Block Card subType String false Sub type. `DEFAULT`: Default `REFUND`: Card balance refund.This generally refers to a refund initiated by the merchant after the card is cancelled. Because the card is cancelled, the balance cannot be refunded to the card itself and needs to be withdrawn to the customer's wallet. status String true Status. `wait_process`: pending; `processing`: processing; `success`: success; `fail`: failure description String false Description remark String false Remark, equal description. will remove transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "total": 1, "records": [\ {\ "orderNo": "1852379830190366720",\ "merchantOrderNo": "T1852379826671345664",\ "cardNo": "WB2025103119841257038691924352",\ "currency": "USD",\ "amount": 20,\ "fee": 0.1,\ "receivedAmount": 20,\ "receivedCurrency": "USD",\ "type": "create",\ "status": "wait_process",\ "description": null\ "remark": null,\ "transactionTime": 1730476741729\ },\ {\ "orderNo": "1852379830190366720",\ "merchantOrderNo": "T1852379826671345664",\ "cardNo": "WB2025103119841257038691924352",\ "currency": "USD",\ "amount": 15,\ "fee": 1.5,\ "receivedAmount": 15,\ "receivedCurrency": "USD",\ "type": "deposit",\ "status": "success",\ "description": null,\ "remark": null,\ "transactionTime": 1730476742000\ }\ ] } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-authorization-transaction-consumption-bill) Card Authorization Transaction (Consumption Bill) --------------------------------------------------------------------------------------------------------------------------------------------------------------- [**Webhook link**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-authorization-transaction-event) Copy POST /merchant/core/mcb/card/authTransaction **Request** Param Type Required Remark pageNum Integer true Current page. Default is 1 pageSize Integer true Number of pages per page. Default 10, maximum 100 type String false Transaction type of card. `auth`: Authorization `refund`: Refund `verification`: Verification `Void`: Reversal `maintain_fee`: Card fee (monthly fee, annual fee, ATM withdraw fee...) tradeNo String false Transaction serial number cardNo String false Card id startTime Long false Start trading time. Milliseconds timestamp endTime Long false End trading time. Millisecond timestamp **Response** Param Type Required Remark cardNo String true Card id tradeNo String true Transaction serial number originTradeNo String false Origin transaction serial number currency String false Currency. example: SGD amount BigDecimal false Amount. example: 125.24 authorizedAmount BigDecimal true Authorized amount. example: 56 authorizedCurrency String true Authorized currency. example: USD fee BigDecimal true Authorization fee feeCurrency String false Authorization fee currency crossBoardFee BigDecimal true Cross board fee crossBoardFeeCurrency String false Cross board fee currency settleAmount BigDecimal false Settlement amount. Pushed after receiving settlement information settleCurrency String false Settlement currency. Pushed after receiving settlement information settleDate Long false Settlement date. Millisecond timestamp authorizationCode String false Authorization code merchantName String false Merchant name merchantData Object false Merchant info merchantData.name String false Merchant name merchantData.categoryCode String false Merchant Category Code (MCC) merchantData.category String false MCC category merchantData.country String false Merchant country. ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 merchantData.state String false Merchant state merchantData.city String false Merchant city merchantData.zipCode String false Merchant ZIP/postal code merchantData.mid String false Merchant ID (MID) merchantData.walletType String false Digital wallet was used for the transaction type String true Transaction type of card. `auth`: Authorization `refund`: Refund `verification`: Verification `Void`: Reversal `maintain_fee`: Card fee (monthly fee, annual fee, ATM withdraw fee...) status String true Transaction status of card. `authorized`: Authorized; `failed`: Fail; `succeed`: Success description String true Transaction Description transactionTime Long true Transaction time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "total": 1563, "records": [\ {\ "cardNo": "1242352328671924231",\ "tradeNo": "trans1232435363435463432",\ "originTradeNo": null,\ "currency": "SGD",\ "amount": 16.96,\ "authorizedAmount": 2.45,\ "authorizedCurrency": "USD",\ "fee": 0.3,\ "feeCurrency": "USD",\ "crossBoardFee": 0.2,\ "crossBoardFeeCurrency": "USD",\ "settleAmount": 0,\ "settleCurrency": null,\ "settleDate": null,\ "authorizationCode": "478198",\ "merchantName": "HUQQABAZ RESTAURANTS B DUBAI ARE",\ "merchantData":\ {\ "name": "HUQQABAZ RESTAURANTS B DUBAI ARE",\ "categoryCode": "5811",\ "category": "",\ "country": "ARE",\ "state": "",\ "city": "",\ "zipCode": "",\ "mid": 213028402482045,\ "walletType": "ApplePay"\ },\ "type": "auth",\ "status": "authorized",\ "description": "Auth",\ "transactionTime": 1729422898000\ }\ ] } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-authorization-fee-transaction) Card Authorization Fee Transaction ----------------------------------------------------------------------------------------------------------------------------------- [**Webhook link**](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-authorization-fee-transaction-event) Copy POST /merchant/core/mcb/card/authFeeTransaction If the user's bank card balance is insufficient to cover the authorization fee, the bank will deducting Wasabi's funds to offset the fee. Therefore, if the user's bank card balance is insufficient, Wasabi will debit the merchant's reserve account on the platform to offset the fee. Feed Collection Process 1. Bank debits the card balance (deduction fails due to insufficient card balance) 2. Bank debits Wasabi's reserve funds to offset the fee. The bill is sent to Wasabi. 3. Wasabi verifies the card balance and debits the card balance to offset the fee (deduction fails due to insufficient card balance) 4. Wasabi debits the merchant's reserve account on the platform to offset the fee. \[A fee record will be generated after this link is executed.\] **Request** Param Type Required Remark pageNum Integer true Current page. Default is 1 pageSize Integer true Number of pages per page. Default 10, maximum 100 tradeType String false Transaction type of card. `card_patch_fee`: Authorization fee `card_patch_cross_border`: Cross border fee tradeNo String false Transaction id originTradeNo String false Origin authorization Transaction serial number cardNo String false Card id startTime Long false Start trading time. Milliseconds timestamp endTime Long false End trading time. Millisecond timestamp **Response** Param Type Required Remark cardNo String true Card id tradeNo String true Transaction id originTradeNo String true Origin Trade No , Authorization transaction in tradeNo currency String true Fee currency. example: USD amount BigDecimal true Fee amount type String true `card_patch_fee`**:** auth fee; `card_patch_cross_border`**:** cross-border fee; deductionSourceFunds String true Source of fund deduction. `wallet`**:** wallet. User master account status String true Status `success`**:** success transactionTime Long true Transaction time (unit: milliseconds) **Response Example** Copy { "success": true, "code": 200, "msg": "Success", "data": { "total": 1563, "records": [\ {\ "cardNo": "1242352328671924231",\ "tradeNo": "CAF1232435363435463432",\ "originTradeNo": "trans1232435363435463432",\ "currency": "USD",\ "amount": 0.5,\ "type": "card_patch_fee",\ "deductionSourceFunds": "wallet",\ "status": "success",\ "transactionTime": 1729422898000\ }\ ] } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-3ds-transaction) Card 3DS Transaction ------------------------------------------------------------------------------------------------------- [Webhook link](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-authorization-fee-transaction) Copy POST /merchant/core/mcb/card/third3dsTransaction **Request** Param Type Required Remark pageNum Integer true Current page. Default 1 pageSize Integer true Number of pages per page. Default 10, maximum 100 type String false Type `third_3ds_otp:` otp; `auth_url:`Transaction authorization response url `activation_code`: activation code (physical card) tradeNo String false Transaction serial number cardNo String false Card ID startTime Long false Start trading time. Milliseconds timestamp endTime Long false End trading time. Millisecond timestamp **Response** Param Type Required Remark cardNo String true Card ID tradeNo String true Transaction serial number originTradeNo String false Origin Transaction serial number currency String true currency amount BigDecimal true amount merchantName String true Merchant Name (Transaction Scenario) values String true value. The merchant's public key is encrypted and returned, and the merchant's private key decrypt. type String true Type `third_3ds_otp:`3ds otp; `auth_url:`Transaction authorization response url `activation_code`: activation code (physical card) description String false Transaction Description transactionTime Long true Transaction time. Millisecond timestamp expirationTime Long false Expiration time. Millisecond timestamp **Example Response** third\_3ds\_otp auth\_url activation\_code Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": "CNY", "amount": "16.96", "merchantName": "ULTRA MOBILE", "values": "ajfon34nNOIN24nafaiw4onnfn0iw32ngfn0IF0Q34NFQFOFAW", //Plain text example: 204566 "type": "third_3ds_otp", "transactionTime": 1729422898000, "description": null } Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": "CNY", "amount": "16.96", "merchantName": "ULTRA MOBILE", "values": "ajfon34nNOIN24nafaiw4onnfn0iw32ngfn0IF0Q34NFQFOFAW",//Plain text example: https://www.google.com "type": "auth_url", "transactionTime": 1729422898000, "description": null, "expirationTime": 1729422899000 } Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": null, "amount": "0", "merchantName": null, "values": "ajfon34nNOIN24nafaiw4onnfn0iw32ngfn0IF0Q34NFQFOFAW", //明文示例:20834698 "type": "activation_code", "description": null, "transactionTime": 1729422898000 } [PreviousCARD](https://wsb.gitbook.io/wasabicard-doc/api/card) [NextCard holder](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder) Last updated 2 days ago --- # WEBHOOKS | WasabiCard Please provide the callback address from the merchant. Notification will be made after configuration in the merchant backend. When the transaction has the final result, through `webhook` configuration, the development platform will send a transaction notification to the merchant. When the acceptance is unsuccessful or the sending fails, the transaction will be sent 7 times with a time interval of 1m, 5m, 20m, 1h, 12h, 24h. [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#event-template) Event Template ----------------------------------------------------------------------------------------- **Headers** Name Value describtion Content-Type application/json Content Type X-WSB-CATEGORY ${X-WSB-CATEGORY} Business identifiers for different event types X-WSB-SIGNATURE ${signature} signature X-WSB-REQUEST-ID ${requestId} A unique id for request [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#event-response-template) Event Response Template ----------------------------------------------------------------------------------------------------------- When the return structure is as shown below, the callback notification is successful Copy { "success": true, "code": 200, //must return 200 "msg": null, "data": null } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-operation-transaction-event) Card Operation Transaction Event ----------------------------------------------------------------------------------------------------------------------------- X-WSB-CATEGORY=card\_transaction **Request Params** Click on the returned object [**Card Operation Transaction**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-operation-transaction-v2) Interface to view the response data **Example Body** Copy { "orderNo": "1852379830190366720", "merchantOrderNo": "T1852379826671345664", "cardNo": "23424290324234454242", "currency": "USD", "amount": 15, "fee": 0, "receivedAmount": 0, "receivedCurrency": "USD", "type": "create", "status": "success", "description": null, "remark": null, "transactionTime": 1730476742000, "giftCardActivateUrl":"" } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-authorization-transaction-event) Card Authorization Transaction Event ------------------------------------------------------------------------------------------------------------------------------------- X-WSB-CATEGORY=card\_auth\_transaction The same transaction serial number may be pushed multiple times. 1. The status may flow. For example, when type=auth, the first push status=authorized (authorized), after the authorization is successfully received, the status=succeed or other status will be pushed again. 2. The settlement amount and other information will be pushed, and the amount may change. For example, crossBoardFee and settleAmount will change from 0 to a value. **Request Params** Click on the returned object [**Card Authorization Transaction**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-authorization-transaction-consumption-bill) Interface to view the response data **Example Body** Example 1 Example 2 Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": "SGD", "amount": 16.96, "authorizedAmount": 2.45, "authorizedCurrency": "USD", "fee": 0.3, "feeCurrency": "USD", "crossBoardFee": 0.2, "crossBoardFeeCurrency": "USD", "settleAmount": 0, "settleCurrency": null, "settleDate": null, "authorizationCode": "478198", "merchantName": "HUQQABAZ RESTAURANTS B DUBAI ARE", "merchantData": { "name": "HUQQABAZ RESTAURANTS B DUBAI ARE", "categoryCode": "5811", "category": "", "country": "ARE", "state": "", "city": "", "zipCode": "", "mid": 213028402482045, "walletType": "ApplePay" }, "type": "auth", "status": "authorized", "description": "Auth", "transactionTime": 1729422898000 } Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": "SGD", "amount": 16.96, "authorizedAmount": 2.45, "authorizedCurrency": "USD", "fee": 0.3, "feeCurrency": "USD", "crossBoardFee": 0.2, "crossBoardFeeCurrency": "USD", "settleAmount": 2.45, "settleCurrency": "USD", "settleDate": 1730995200, "authorizationCode": "478198", "merchantName": "HUQQABAZ RESTAURANTS B DUBAI ARE", "merchantData": { "name": "HUQQABAZ RESTAURANTS B DUBAI ARE", "categoryCode": "5811", "category": "", "country": "ARE", "state": "", "city": "", "zipCode": "", "mid": 213028402482045, "walletType": "ApplePay" }, "type": "auth", "status": "succeed", "description": "Auth", "transactionTime": 1729422898000 } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-authorization-fee-transaction-event) Card Authorization Fee Transaction Event --------------------------------------------------------------------------------------------------------------------------------------------- X-WSB-CATEGORY=card\_fee\_patch **Request Params** Click on the returned object [**Card Authorization Fee Transaction**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-authorization-fee-transaction) Interface to view the response data **Example Body** Copy { "cardNo": "1242352328671924231", "tradeNo": "CAF1232435363435463432", "originTradeNo": "trans1232435363435463432", "currency": "USD", "amount": 0.5, "type": "card_patch_fee", "deductionSourceFunds": "wallet", "status": "success", "transactionTime": 1729422898000 } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-3ds-transaction-event) Card 3DS Transaction Event ----------------------------------------------------------------------------------------------------------------- X-WSB-CATEGORY=card\_3ds **Request Params** Click on the returned object [**Card 3DS Transaction**](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#card-3ds-transaction) Interface to view the response data **Example Body** third\_3ds\_otp auth\_url activation\_code Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": "CNY", "amount": 16.96, "merchantName": "ULTRA MOBILE", "values": "ajfon34nNOIN24nafaiw4onnfn0iw32ngfn0IF0Q34NFQFOFAW", //Plain text example: 204566 "type": "third_3ds_otp", "transactionTime": 1729422898000, "description": null, "expirationTime": 1729422899000 } Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": "CNY", "amount": "16.96", "merchantName": "ULTRA MOBILE", "values": "ajfon34nNOIN24nafaiw4onnfn0iw32ngfn0IF0Q34NFQFOFAW",//Plain text example: https://www.google.com "type": "auth_url", "transactionTime": 1729422898000, "description": null, "expirationTime": 1729422899000 } Copy { "cardNo": "1242352328671924231", "tradeNo": "trans1232435363435463432", "originTradeNo": null, "currency": null, "amount": "0", "merchantName": null, "values": "ajfon34nNOIN24nafaiw4onnfn0iw32ngfn0IF0Q34NFQFOFAW", //Plain text example:20834634 "type": "activation_code", "description": null, "transactionTime": 1729422898000 } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#card-holder-event) Card Holder Event ----------------------------------------------------------------------------------------------- X-WSB-CATEGORY=card\_holder **Request Params** Click on the returned object [**Cardholder-List**](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-list) Interface to view the response data **Example Body** Copy { "holderId": 123456, "cardTypeId": 111016, "email": "test@test.com", "firstName": "first", "lastName": "last", "status": "reject", "description": "Email wrong", "respMsg": null } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#activate-card-event) Activate Card Event --------------------------------------------------------------------------------------------------- X-WSB-CATEGORY=physical\_card **Request Params** Activate Card Copy { "merchantOrderNo": "35nigjaongaognaeorig", //Merchant order number "cardNo": "jojaga3-35mg-35saga-3535dfg", //Card ID "type": "card_activated", //Type "status": "success", //Status. wait_process processing success fail "description": "SUCCESS", "remark": null // equal description, will remove } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#work-order-event) Work Order event --------------------------------------------------------------------------------------------- X-WSB-CATEGORY=work **Request Params** Click on the returned object [**Work Order List**](https://wsb.gitbook.io/wasabicard-doc/api/common#work-order-list) Interface to view the response data **Example Body** Copy { "merchantOrderNo": "13243897979979797999008085", "orderNo": "WORK-202508071953472304731676672", "title": "ApplePay", "target": "5533700042831234", "content": "Active", "tradeType": "CARD_ACTIVE", "tradeStatus": "success", //wait_process; processing; success; fail "description": "SUCCESS", "remark": null, "createTime": 1754607865000, "updateTime": 1754648044000 } [](https://wsb.gitbook.io/wasabicard-doc/api/webhooks#wallet-transaction-event) Wallet Transaction event ------------------------------------------------------------------------------------------------------------- **Note:** that if status=fail is not considered the final state, we can manually enter the final status=success (this is a possibility). X-WSB-CATEGORY=wallet\_transaction **Request Params** Click on the returned object **\[**[**Wallet Transaction**](https://wsb.gitbook.io/wasabicard-doc/api/account#wallet-deposit-transaction)\ **\]** Interface to view the response data **Example Body** Copy { "orderNo": "CND1985645689502720000", "needDepositTxAmount": 20, "txAmount": 20, "feeRate": 1.5, "fee": 0.3, "fixedFee": 0, "currency": "USDT", "receivedAmount": 19.7, "receivedCurrency": "USD", "chain": "TRC20", "fromAddress": "TVwdXFHzD5mJP52xkxtRfVCLrWNaLGiiaB", "toAddress": "TF9fZHk27TmEznSRHiirWkX23zbZJC299M", "txId": "b5eccb05e227fab979182905e3ff1ec8a0995f43bc407aaaaaaaaaaaaaaa", "block": 65567635, "confirmTime": 1727351235000, "type": "chain_deposit", "status": "success", "remark": "Chain deposit", "createTime": 1762249798000, "updateTime": 1762249920000 } [PreviousCard holder](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder) Last updated 2 days ago --- # Card holder | WasabiCard [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#restricted-countries-regions) Restricted Countries/Regions ----------------------------------------------------------------------------------------------------------------------------- Cuba; North Korea; Egypt; Iran; Myanmar; Nigeria; Russia; Belarus; South Africa; Syria; Ukraine; Venezuela; Sudan; South Sudan; Libya; Crimea; Crimea (Ukraine); Burundi; Central African Republic; Somalia; Zimbabwe; Afghanistan [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#supported-id-types-by-country-region) Supported ID Types by Country/Region --------------------------------------------------------------------------------------------------------------------------------------------- * **Mainland China** * PASSPORT * **Hong Kong** * PASSPORT * HK\_HKID * **Other Countries/Regions** * PASSPORT * DLN * GOVERNMENT\_ISSUED\_ID\_CARD [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-occupation) Cardholder-Occupation --------------------------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/holder/occupations **Request** Param Type Required Remark **Response** Param Type Required Remark occupationCode String True Occupation code description String True Occupation **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": [\ {\ "occupationCode": "11-1011",\ "description": "Chief Executives"\ }\ ] } [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v1) ~Cardholder-Create-v1~ --------------------------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/holder/create **Request** Param Type Required Remark merchantOrderNo String true Client transaction id. length\[20...40\] cardTypeId Long true Card type ID areaCode String true Mobile phone area code. length\[2...5\]. Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderAreaCode mobile String true Mobile phone number. length\[5...20\] email String true Email. **Receive verification code**. length\[5...50\] firstName String true First Name. Only English characters are supported. length\[2...23\] The total length of firstName and lastName cannot exceed 23 characters (including spaces) lastName String true Last name. Only English characters are supported. length\[2...23\]. The total length of firstName and lastName cannot exceed 23 characters (including spaces) birthday String true Date of birth. yyyy-MM-dd nationality String true Nationality Code. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin country String true Country/Region Code for bill address. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin town String true City Code for bill address. Get [City List](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) Interface Parameter code address String true Address for bill. length\[2...40\]. Can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ postCode String true Postal code for bill. length\[2...15\]. regex: ^\[a-zA-Z0-9\]{1,15}$ **Response** Param Type Required Remark holderId Long true Cardholder id merchantOrderNo String false Client transaction id cardTypeId Long true Card type id statusFlowLocation String true Review flow location. Process: Platform review first, then bank review. Update cardholders are supported only when statusFlowLocation=admin and status=reject `admin`: platform review; `channel`: bank review status String true Status. `wait_audit`: Pending; `pass_audit`: Approved; `under_review`: In review; `reject`: Rejected description String false Description respMsg String false remark, equal description. will remove **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "holderId": 124024, "merchantOrderNo": "114242059249029235245352442", "cardTypeId": 124024, "statusFlowLocation": "admin", "status": "pass_audit", "description": "SUCCESS", "respMsg": "SUCCESS" } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-update-v1) ~Cardholder-Update-v1~ --------------------------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/holder/update **Request** Param Type Required Remark holderId Long true Holder id areaCode String true Mobile phone area code. length\[2...5\]. Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderAreaCode mobile String true Mobile phone number. length\[5...20\] email String true Email. **Receive verification code**. length\[5...50\] firstName String true First Name. Only English characters are supported. length\[2...23\] The total length of firstName and lastName cannot exceed 23 characters (including spaces) lastName String true Last name. Only English characters are supported. length\[2...23\]. The total length of firstName and lastName cannot exceed 23 characters (including spaces) birthday String true Date of birth. yyyy-MM-dd nationality String true Nationality Code. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin country String true Country/Region Code for bill address. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin town String true City Code for bill address. Get [City List](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) Interface Parameter code address String true Address for bill. length\[2...40\]. Can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ postCode String true Postal code for bill. length\[2...15\]. regex: ^\[a-zA-Z0-9\]{1,15}$ **Response** Param Type Required Remark holderId Long true Cardholder id merchantOrderNo String false Client transaction id cardTypeId Long true Card type id statusFlowLocation String true Review flow location. Process: Platform review first, then bank review. Update cardholders are supported only when statusFlowLocation=admin and status=reject `admin`: platform review; `channel`: bank review status String true Status. `wait_audit`: Pending; `pass_audit`: Approved; `under_review`: In review; `reject`: Rejected description String false Description respMsg String false remark, equal description. will remove **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "holderId": 124024, "merchantOrderNo": "114242059249029235245352442", "cardTypeId": 124024, "statusFlowLocation": "admin", "status": "pass_audit", "description": "SUCCESS", "respMsg": "SUCCESS" } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-create-v2) Cardholder-Create-v2 ------------------------------------------------------------------------------------------------------------- Please fill in the cardholder information truthfully. The cardholder cannot modify any information after submitting it to the bank. And the email address and ID number are globally unique under the same card type (cardTypeId). For example, if a user submits the email address test@gmail.com from channel A, the same email address will be rejected when submitted from channel B. Copy POST /merchant/core/mcb/card/holder/v2/create **Request** cardHolderModel = B2B[](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholdermodel-b2b) Param Type Required Remark cardHolderModel String true Cardholder business model. `B2B` merchantOrderNo String true Client transaction id. length\[20...40\] cardTypeId Long true Card type id areaCode String true Mobile area code. length\[2...5\]. Get [Support Bins](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) Interface Parameter `supportHolderAreaCode`. mobile String true Mobile phone number. length\[5...20\] email String true Email. **Receive verification code**. length\[5...50\] firstName String true First Name. Only English characters are supported. length\[2...32\] The total length of firstName and lastName cannot exceed 23 characters (including spaces) lastName String true Last name. Only English characters are supported. length\[2...32\]. The total length of firstName and lastName cannot exceed 23 characters (including spaces) birthday String true Date of birth. yyyy-MM-dd country String true Country/Region Code for bill address. ISO 3166-1 alpha-2 Get [Support Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter `supportHolderRegin` town String true City Code for bill address. Get [City List](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) Interface Parameter `code` address String true Address for bill. length\[2...40\]. Can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ postCode String true Postal code for bill. length\[2...15\]. regex: ^\[a-zA-Z0-9\]{1,15}$ cardHolderModel = B2C[](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholdermodel-b2c) Param Type Required Remark cardHolderModel String true Cardholder business model. `B2C` merchantOrderNo String true Client transaction id. length\[20...40\] cardTypeId Long true Card type id areaCode String true Mobile phone area code. length\[2...5\]. Get [Support Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter `supportHolderAreaCode` mobile String true Mobile phone number. length\[5...20\] email String true Email. **Receive verification code**. length\[5...50\] firstName String true First Name. Only English characters are supported. length\[2...32\] The total length of firstName and lastName cannot exceed 23 characters (including spaces) lastName String true Last name. Only English characters are supported. length\[2...32\]. The total length of firstName and lastName cannot exceed 23 characters (including spaces) birthday String true Date of birth. yyyy-MM-dd nationality String true Nationality Code. ISO 3166-1 alpha-2 Get [Support Bins](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) Interface Parameter `supportHolderRegin` country String true Country/Region Code for bill address. ISO 3166-1 alpha-2 Get [Support Bins](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#support-bins) Interface Parameter `supportHolderRegin` town String true City Code for bill address. Get [City List](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) Interface Parameter code address String true Address for bill. length\[2...40\]. Can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ postCode String true Postal code for bill. length\[2...15\]. regex: ^\[a-zA-Z0-9\]{1,15}$ gender String true Gender. `M`: male; `F`: female occupation String true Occupation. Get [cardholder's occupation](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-occupation) Interface parameter `occupationCode` annualSalary String true Annual salary. example: 100000 USD accountPurpose String true Account purpose. Only supports English. example: Living Expense expectedMonthlyVolume String true Expected monthly trading volume. example: 10000 USD idType String true Id type. `PASSPORT`: Passport `HK_HKID`: Hong Kong Identity Card `DLN`: DLN `GOVERNMENT_ISSUED_ID_CARD`: Government-issued ID Card idNumber String true Id number. length\[2...50\] ssn String false Social Security Number. issueDate String true ID document issuance date. format: yyyy-MM-dd idNoExpiryDate String true The certificate expiration date. format: yyyy-MM-dd idFrontId String true Front photo of ID card File id. Call [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to get idBackId String true Back photo of ID card File id. Call [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to get idHoldId String true User face photo File id. Call the [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to obtain ipAddress String true IPV4 address. **Response** Param Type Required Remark holderId Long true Cardholder id merchantOrderNo String false Client transaction id cardTypeId Long true Card type id statusFlowLocation String true Review flow location. Process: Platform review first, then bank review. Update cardholders are supported only when statusFlowLocation=admin and status=reject `admin`: platform review; `channel`: bank review status String true Status. `wait_audit`: Pending; `pass_audit`: Approved; `under_review`: In review; `reject`: Rejected description String false Description respMsg String false remark, equal description. Deprecated will remove **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "holderId": 124024, "merchantOrderNo": "114242059249029235245352442", "cardTypeId": 124024, "statusFlowLocation": "admin", "status": "pass_audit", "description": "SUCCESS", "respMsg": "SUCCESS" } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-update-v2) Cardholder-Update-v2 ------------------------------------------------------------------------------------------------------------- Updating the cardholder is supported only when statusFlowLocation=admin and status=reject Copy POST /merchant/core/mcb/card/holder/v2/update **Request** cardHolderModel = B2B[](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholdermodel-b2b-1) Param Type Required Remark cardHolderModel String true Cardholder business model. `B2B` holderId Long true Holder id areaCode String true Mobile phone area code. length\[2...5\]. Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderAreaCode mobile String true Mobile phone number. length\[5...20\] email String true Email. **Receive verification code**. length\[5...50\] firstName String true First Name. Only English characters are supported. length\[2...23\] The total length of firstName and lastName cannot exceed 23 characters (including spaces) lastName String true Last name. Only English characters are supported. length\[2...23\]. The total length of firstName and lastName cannot exceed 23 characters (including spaces) birthday String true Date of birth. yyyy-MM-dd nationality String true Nationality Code. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin country String true Country/Region Code for bill address. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin town String true City Code for bill address. Get [City List](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) Interface Parameter code address String true Address for bill. length\[2...40\]. Can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ postCode String true Postal code for bill. length\[2...15\]. regex: ^\[a-zA-Z0-9\]{1,15}$ cardHolderModel = B2C[](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholdermodel-b2c-1) Param Type Required Remark cardHolderModel String true Cardholder business model. `B2C` holderId Long true Holder id areaCode String true Mobile phone area code. length\[2...5\]. Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderAreaCode mobile String true Mobile phone number. length\[5...20\] email String true Email. **Receive verification code**. length\[5...50\] firstName String true First Name. Only English characters are supported. length\[2...23\] The total length of firstName and lastName cannot exceed 23 characters (including spaces) lastName String true Last name. Only English characters are supported. length\[2...23\]. The total length of firstName and lastName cannot exceed 23 characters (including spaces) birthday String true Date of birth. yyyy-MM-dd nationality String true Nationality Code. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin country String true Country/Region Code for bill address. ISO 3166-1 alpha-2 Get [Support Card Bin](https://wsb.gitbook.io/wasabicard-doc/api/card/cards#supported-card-bin) Interface Parameter supportHolderRegin town String true City Code for bill address. Get [City List](https://wsb.gitbook.io/wasabicard-doc/api/common#city-list) Interface Parameter code address String true Address for bill. length\[2...40\]. Can only contain letters, numbers, hyphens and spaces. regex: ^\[A-Za-z0-9\\- \]+$ postCode String true Postal code for bill. length\[2...15\]. regex: ^\[a-zA-Z0-9\]{1,15}$ gender String true Gender. M: male; F: female occupation String true Occupation. Get [cardholder's occupation](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-occupation) parameter occupationCode annualSalary String true Annual salary. eg: 10000000 USD accountPurpose String true Account purpose. Only supports English. eg: Living Expense expectedMonthlyVolume String true Expected monthly trading volume. eg: 100000 USD idType String true Id type. `PASSPORT`: Passport `HK_HKID`: Hong Kong Identity Card `DLN`: DLN `GOVERNMENT_ISSUED_ID_CARD`: Government-issued ID Card idNumber String true Id number. length\[2...50\] ssn String false Social Security Number. issueDate String true ID document issuance date. format: yyyy-MM-dd idNoExpiryDate String true The certificate expiration date. format: yyyy-MM-dd idFrontId String true Front photo of ID card File ID. Call [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to get idBackId String true Back photo of ID card File ID. Call [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to get idHoldId String true User selfie photo File ID. Call the [upload file](https://wsb.gitbook.io/wasabicard-doc/api/common#upload-file) interface to obtain ipAddress String true IPV4 address. **Response** Param Type Required Remark holderId Long true Cardholder id merchantOrderNo String false Client transaction id cardTypeId Long true Card type id statusFlowLocation String true Review flow location. Process: Platform review first, then bank review. Update cardholders are supported only when statusFlowLocation=admin and status=reject `admin`: platform review; `channel`: bank review status String true Status. `wait_audit`: Pending; `pass_audit`: Approved; `under_review`: In review; `reject`: Rejected description String false Description respMsg String false remark, equal description. Deprecated will remove **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "holderId": 124024, "merchantOrderNo": "114242059249029235245352442", "cardTypeId": 124024, "statusFlowLocation": "admin", "status": "pass_audit", "description": "SUCCESS", "respMsg": "SUCCESS" } } [](https://wsb.gitbook.io/wasabicard-doc/api/card/card-holder#cardholder-list) Cardholder-List --------------------------------------------------------------------------------------------------- Copy POST /merchant/core/mcb/card/holder/query **Request** Param Type Required Remark pageNum Integer true Current page. Default is 1 pageSize Integer true Number of pages per page. Maximum 100, default 10 holderId Long false Holder id areaCode String false Mobile area code areaCode and mobile are passed at the same time or not. example: +1 mobile String false Mobile phone number email String false Email merchantOrderNo String false Client transaction id **Response** Param Type Required Remark holderId String true Cardholder id merchantOrderNo String false Client transaction id cardTypeId String true Card type id areaCode String true Mobile area code mobile String true Mobile number email String true Email firstName String true First Name lastName String true Last name birthday String true Date of birth. YYYY-MM-dd country String true Country/Region Code. ISO 3166-1 alpha-2 town String true City code address String true address postCode String true Postal code statusFlowLocation String true Review flow location. Update cardholders are supported only when statusFlowLocation=admin and status=reject `admin`: Wasabi review; `channel`: Bank review status String true Status. `wait_audit`: Pending; `pass_audit`: Approved; `under_review`: In review; `reject`: Rejected description String true Description respMsg String false remark, equal description. Deprecated will remove createTime Long true Creation time. Milliseconds updateTime Long true Update time. Millisecond timestamp **Example Response** Copy { "success": true, "code": 200, "msg": "Success", "data": { "total": 11, "records": [\ {\ "holderId": 102424,\ "merchantOrderNo": "24353647ksglsan3535",\ "cardTypeId": 102424,\ "areaCode": "+852",\ "mobile": "875692311",\ "email": "test@test.com",\ "firstName": "elly",\ "lastName": "tom",\ "birthday": "1990-10-10",\ "country": "HK",\ "countryStr": "Hong Kong",\ "town": "HK_KKC_1",\ "townStr": "九龙城区",\ "address": "To Kwa Wan, Kowloon, Hong Kong",\ "postCode": "999077",\ "statusFlowLocation": "admin",\ "status": "pass_audit",\ "description": "SUCCESS"\ "respMsg": null,\ "createTime": 232413142131,\ "updateTime": 232413142131\ }\ ] } } [PreviousCards](https://wsb.gitbook.io/wasabicard-doc/api/card/cards) [NextWEBHOOKS](https://wsb.gitbook.io/wasabicard-doc/api/webhooks) Last updated 1 month ago ---