Skip to main content

Card APIs

Full card lifecycle: card types, issuance, balance, deposit/withdraw, freeze/unfreeze, cancel, activate (physical), PIN management, and 5 transaction query types.
Base URL: POST /api/v2.1/fincard/virtual/card/...

Support Bins (Card Types)

Returns all available card types with pricing, features, and cardholder requirements.
POST /api/v2.1/fincard/virtual/card/v2/cardTypes
Request: {} (empty body) Response data[]:
FieldTypeDescription
cardTypeIdLongCard type ID (use in create card)
organizationStringVisa / MasterCard / Discover
countryStringIssue country (ISO alpha-2)
modeStringPREPAID_CARD / BUDGET_CARD (shared)
bankCardBinStringCard BIN (e.g. 531993)
typeStringVirtual / Physical
categoryStringGIFT / PURCHASE / SUBSCRIPTION / PHYSICAL
cardNameStringDisplay name
cardDescStringDescription
cardPriceBigDecimalCard creation fee
cardPriceCurrencyStringFee currency
supportListSupported merchant names (reference only)
riskListHigh-risk merchants (card cancellation risk)
needCardHolderBooleantrue = must create cardholder first
supportHolderReginListSupported cardholder nationalities (ISO alpha-2)
supportHolderAreaCodeListSupported mobile area codes
needDepositForActiveCardBooleanInitial deposit required
depositAmountMinQuotaForActiveCardBigDecimalMin initial deposit
depositAmountMaxQuotaForActiveCardBigDecimalMax initial deposit
fiatCurrencyStringCard currency (e.g. USD)
balanceRetentionQuotaBigDecimalMin balance for withdrawal
statusStringonline / offline
rechargeCurrencyStringDeposit currency
rechargeMinQuotaBigDecimalMin deposit amount
rechargeMaxQuotaBigDecimalMax deposit amount
rechargeFeeRateBigDecimalDeposit fee rate (1 = 1%)
rechargeFixedFeeBigDecimalFixed deposit fee
rechargeDigitalIntegerDeposit amount decimal places
enableActiveCardBooleanCard creation enabled
enableDepositBooleanDeposit enabled
enableFreezeBooleanFreeze enabled
enableUnFreezeBooleanUnfreeze enabled
metadata.cardHolderMaxCardLimitIntegerMax cards per cardholder
metadata.cardHolderModelStringB2B / B2C (cardholder creation mode)
metadata.spendingControls[]ListDefault spending limits
metadata.supportSettingMccBooleanMCC whitelist/blacklist supported
metadata.cardHolderModel B2B/B2C is an internal code — it does NOT mean company vs individual. Use it to determine which cardholder creation fields are required.

Create Card V2

Create a new virtual or physical card with initial deposit.
POST /api/v2.1/fincard/virtual/card/v2/openCard
Request:
FieldTypeRequiredDescription
merchantOrderNoStringYesClient transaction ID [20..40]
holderIdLongNoCardholder ID (required if needCardHolder=true)
cardTypeIdLongYesCard type ID from cardTypes
amountBigDecimalYesInitial deposit. Range: depositAmountMin..Max
cardNumberStringNoRequired for physical card (offline card number)
accountIdLongNoAccount ID for shared card mode (BUDGET_CARD)
Response data:
FieldTypeDescription
orderNoStringPlatform transaction ID
merchantOrderNoStringClient transaction ID
cardNoStringCard ID (use for all subsequent operations)
currencyStringCurrency
amountBigDecimalInitial deposit amount
feeBigDecimalCard creation fee
receivedAmountBigDecimalAmount credited to card
receivedCurrencyStringCurrency
typeStringcreate
statusStringwait_process / processing / success / fail
descriptionStringStatus description
transactionTimeLongMillisecond timestamp
cardNo is the unique card identifier. Use it for all card operations (info, deposit, withdraw, freeze, cancel).

Card Info

Get card details, status, and optional balance.
POST /api/v2.1/fincard/virtual/card/info
Request:
FieldTypeRequiredDescription
cardNoStringYesCard ID
onlySimpleInfoBooleanNoDefault true. Set false for balance info
Response data:
FieldTypeDescription
cardTypeIdLongCard type ID
holderIdLongCardholder ID
cardNoStringCard ID
statusStringSee card statuses below
blockedBooleanCard blocked by issuer
bindTimeLongCard creation time (ms)
balanceInfo.cardNoStringCard ID
balanceInfo.amountBigDecimalAvailable balance
balanceInfo.usedAmountBigDecimalAmount used
balanceInfo.currencyStringCurrency
noPinPaymentAmountBigDecimalPIN-free payment limit (physical)
spendingControls[]ListSpending controls
Card Statuses:
StatusDescription
pendingCard being created
un_activatedPhysical card waiting for activation
NormalActive and usable
FreezeFrozen (by merchant)
FreezingFreeze in progress
UnFreezingUnfreeze in progress
cancelingCancel in progress
cancelCancelled (permanent)
failCard creation failed

Card Sensitive Info

Get encrypted card number, CVV, and expiry date. Decrypted with merchant’s RSA private key.
POST /api/v2.1/fincard/virtual/card/info/sensitive
Request: { "cardNo": "..." } Response data:
FieldTypeDescription
cardNumberStringRSA-encrypted card number
cvvStringRSA-encrypted CVV
expireDateStringRSA-encrypted expiry date
activateUrlStringGift card redemption URL (gift cards only)
Gift cards only return activateUrl. No card number, CVV, or expiry date.

Card Balance

POST /api/v2.1/fincard/virtual/card/balance
Request: { "cardNo": "..." } Response data: { cardNo, amount, usedAmount, currency }

Card Operations

All card operations follow the same request/response pattern.

Common Request Fields

FieldTypeRequiredDescription
cardNoStringYesCard ID
merchantOrderNoStringYesClient tx ID [20..40]
amountBigDecimalVariesAmount (for deposit/withdraw)
clientRemarkStringNoClient remark [0..50]

Common Response Fields

FieldTypeDescription
orderNoStringPlatform tx ID
merchantOrderNoStringClient tx ID
cardNoStringCard ID
currencyStringCurrency
amountBigDecimalAmount
feeBigDecimalFee
receivedAmountBigDecimalNet amount
typeStringOperation type
statusStringwait_process / processing / success / fail
descriptionStringDescription
transactionTimeLongMillisecond timestamp

Endpoints

OperationPathtypeAmount Required
Deposit/card/depositdepositYes
Withdraw/card/withdrawwithdrawYes (≥ 0.01)
Freeze/card/v2/freezeFreezeNo
UnFreeze/card/v2/unfreezeUnFreezeNo
Cancel/card/cancelcancelNo
Update/card/v2/updatecard_updateNo
Update PIN/card/updatePinupdate_pinNo
Cancel is permanent. The card cannot be reactivated after cancellation.

Update Card — Additional Fields

The Update endpoint also accepts:
FieldTypeDescription
noPinPaymentAmountBigDecimalPIN-free limit (physical cards only)
spendingControls[]ListSpending limits (if supportSetting=true)
riskControls.allowedMccListMCC whitelist (if supportSettingMcc=true)
riskControls.blockedMccListMCC blacklist
Only one of allowedMcc or blockedMcc can be set. Send empty array [] to remove.

Update PIN — Rules

PIN must be 6 digits with these constraints:
  • No 3+ consecutive repeated digits
  • Not entirely ascending or descending
  • No repeated 2-3 digit segments (e.g. 123123)

Activate Card (Physical)

Activate a physical card with PIN and activation code.
POST /api/v2.1/fincard/virtual/card/activate
Request:
FieldTypeRequiredDescription
merchantOrderNoStringYesClient tx ID [20..40]
cardNoStringYesCard ID
pinStringYes6-digit PIN
activeCodeStringYesActivation code (from webhook or email)
noPinPaymentAmountBigDecimalNoPIN-free limit (0-2000 USD, default 500)
Response data: { merchantOrderNo, cardNo, type: "card_activated", status, remark }

Transaction Queries

All transaction queries return { total, records[] } with pagination (pageNum, pageSize).

Card Purchase Transactions

Card fee and initial deposit records.
POST /api/v2.1/fincard/virtual/card/purchase/transaction

Card Operation Transactions (V1 / V2)

Card lifecycle operations (create, deposit, withdraw, freeze, cancel, etc.)
POST /api/v2.1/fincard/virtual/card/transaction       # V1
POST /api/v2.1/fincard/virtual/card/v2/transaction     # V2 (recommended)
Filter: type = create / deposit / cancel / Freeze / UnFreeze / withdraw / update_pin / blocked / card_update / overdraft_statement

Card Authorization Transactions

Consumption (auth), refund, verification, reversal, and maintenance fee records.
POST /api/v2.1/fincard/virtual/card/authorize/transaction
Filter: type = auth / refund / verification / Void / maintain_fee Statuses: authorized / failed / succeed

Card Authorization Fee Transactions

Fee records when card balance is insufficient for authorization fees.
POST /api/v2.1/fincard/virtual/card/auth/fee/transaction
Filter: tradeType = card_patch_fee / card_patch_cross_border

Card 3DS Transactions

3DS OTP codes, authorization URLs, and physical card activation codes.
POST /api/v2.1/fincard/virtual/card/3ds/transaction
Filter: type = third_3ds_otp / auth_url / activation_code
FieldTypeDescription
valuesStringRSA-encrypted value (OTP, URL, or activation code)
expirationTimeLongExpiration time (ms)