Skip to main content

Core Integration Flow

Complete payment card service integration is divided into four stages, from user authentication to consumption reconciliation. The following details each stage and corresponding interfaces:

Stage 1: User Registration & KYC Authentication

Scenario: Complete cardholder authentication. Cardholders must be authenticated before they can apply for cards.

Flow Steps

  1. Frontend Integration of SumSub KYC Component — User completes identity verification
  2. Backend Initiates Cardholder Authentication — Call interface to create cardholder and initiate authentication
  3. Query Authentication Status — Get cardholder list or details to confirm authentication passes
InterfaceMethodPathDescription
Get TokenGET/open-api/v1/merchant/tokenGet Access-Token, required for all subsequent requests
Cardholder Authentication ApplicationPOST/open-api/v1/cardholder/applyCreate cardholder and initiate authentication through this interface; after authentication failure, can update authentication info and re-initiate
Get Cardholder ListPOST/open-api/v1/cardholder/listGet current cardholder list
Get Cardholder DetailsGET/open-api/v1/cardholder/{cardholder_no}/infoGet cardholder’s card list; can verify authentication status

Typical Flow

Frontend KYC Authentication

[POST /cardholder/apply] Initiate cardholder application

Authentication in progress... (Platform verifies with Sumsub)

[POST /cardholder/list] Query cardholder status

Authentication successful ✓ (Status: Approved)

Authentication Status

StatusDescription
PendingAwaiting authentication
In_progressAuthentication in progress
ApprovedAuthentication successful ✓ (Can apply for cards)
RejectedAuthentication failed (Can re-apply)

Stage 2: Select Package, Apply for Card, Card Management

Scenario: After cardholder authentication passes, user selects card type (virtual/physical) and applies for card, along with card management.

Flow Steps

  1. Get Card Package or BIN List — Get available card products based on integration mode
  2. Apply for Card — User selects card type (virtual/physical) and submits application
  3. Query Card Status — Get card list or card details to confirm card application success
  4. Activate Card (Physical Cards) — After user receives physical card, must activate to use
  5. Manage Card Status — Freeze, unfreeze, or delete cards
InterfaceMethodPathModeDescription
Get Card Package ListPOST/open-api/v1/card/package/listCreditLogin merchant backend to create card packages; charge based on corresponding package when applying
Supported Card BIN ListPOST/open-api/v1/card/support/binsAuthGet supported card BINs for authorization mode; card pricing needs to be maintained by the merchant
Apply for CardPOST/open-api/v1/card/applyCommonApply for card (pass package_no for credit, card_bin_no for auth)
Get Card ListPOST/open-api/v1/card/listCommonGet current card list
Get Card DetailsGET/open-api/v1/card/{card_no}/detailCommonGet card details (including rates, fees, etc.)
Get Card Privacy InfoGET/open-api/v1/card/{card_no}/private/infoCommonGet card’s CVV, expiry, card number (requires contacting business to enable PCI permission)
Activate Physical CardPOST/open-api/v1/card/activeCommonPhysical card needs activation after receipt (requires encrypted CVV)
Update Card StatusPOST/open-api/v1/card/status/updateCommonUpdate card usage status (Frozen / Activated / Delete)
Set PINPOST/open-api/v1/card/pin/setCommonSet physical card PIN (requires encrypted PIN)
Card Status Change NotificationWebhookCommonNotification when card status changes after applying; also notified for risk control changes

Typical Flow

Credit Mode:
[POST /card/package/list] Get package list

User selects package

[POST /card/apply] Apply for card (pass package_no)

[POST /card/list] Query card status

Virtual card: Immediately available ✓
    or
Physical card: Mailing → User receives card → [POST /card/active] Activate

[POST /card/pin/set] Set PIN (optional)
Authorization Mode:
[POST /card/support/bins] Get supported BINs

User selects card BIN

[POST /card/apply] Apply for card (pass card_bin_no)

[POST /card/list] Query card status

Virtual card: Immediately available ✓
    or
Physical card: Mailing → User receives card → [POST /card/active] Activate

Card Status

StatusDescriptionAvailable Operations
PendingIn progress (manufacturing, etc.)
ToActivateAwaiting activation (physical card received)Activate, update status
ActivatedActivated/NormalConsume, freeze, delete, set PIN
FrozenFrozenUnfreeze, delete
DeleteDeleted/Cancelled
FailFailedRe-apply

Stage 3: Account & Fund Management (Credit Mode)

Scenario: Check cardholder account balance and execute fund transfers. Credit mode only.

Flow Steps

  1. Recharge Reserve — Merchant manually recharges reserve in backend (no interface currently)
  2. Query Account Balance — Get cardholder account info to confirm available assets
  3. Execute Fund Transfer — Perform fund transfer when cardholder funds change (top-up or withdrawal)
  4. Query Transfer Flow — Check transfer history for reconciliation
InterfaceMethodPathDescription
Reserve RechargeCurrently no interface available, must manually recharge in merchant backend
Cardholder Fund TransferPOST/open-api/v1/account/transferPerform fund transfer when cardholder funds change (top-up or withdrawal); keep both sides in sync; fixed currency TUSDT
Get Cardholder Account Info ListGET/open-api/v1/account/{cardholder_no}/infoAvailable assets in cardholder’s credit mode account
Get Account Transfer Flow ListPOST/open-api/v1/account/transfer/listCardholder fund transfer history

Typical Flow

User top-up request

[POST /account/transfer] Execute transfer (type: In)

Transfer successful ✓ (returns transfer reference)

[GET /account/{cardholder_no}/info] Query balance to confirm

[POST /account/transfer/list] Query transfer flow for reconciliation

Transfer Types

TypeDirectionDescription
InCompany → CardholderUser top-up (merchant account can go negative)
OutCardholder → CompanyUser withdrawal (requires sufficient balance, otherwise fails)

Stage 4: Consumption & Billing

Scenario: After user uses card for consumption, view transaction records and details for merchant reconciliation.

Flow Steps

  1. User Consumption — Cardholder uses card for transaction
  2. Receive Consumption Notification — Platform sends consumption order notification via Webhook
  3. Query Consumption Details — Get detailed info by consumption reference
  4. Query Consumption List — Query consumption records by time range for reconciliation
InterfaceMethodPathDescription
Consumption Order NotificationWebhookNotification sent when cardholder consumes; also sent when order settles; includes fee details and merchant info
Get Card Consumption ListPOST/open-api/v1/card/consume/listQuery historical consumption records by card; supports filtering by time range, card number, etc.
Get Card Consumption DetailsGET/open-api/v1/card/consume/{consume_no}/infoQuery consumption details including rates, fees, merchant info

Typical Flow

User uses card for consumption

[Webhook Consumption Notification] Platform sends consumption order notification

Merchant handles notification (returns code: 0)

[GET /consume/{consume_no}/info] Query consumption details

[POST /consume/list] Periodically query consumption list for reconciliation

Generate billing and reconciliation statement

Consumption Types

TypeDescription
ConsumptionTransaction
AtmATM Withdrawal
Manage_feeManagement Fee
RefundRefund
ReversalChargeback/Reversal
Open_cardCard Issuance Fee

Authorization Mode Special Flow

Authorization mode requires real-time authorization confirmation
User consumption request

[Webhook Auth Notification] Platform sends authorization notification

Merchant must confirm within 800 ms

Return response { "code": 0 }

Authorization approved → Transaction continues ✓
    or
Authorization denied → Transaction fails ✗

[Webhook Consumption Notification] Final result notification
Important: Authorization mode has very high performance requirements. Ensure your system can complete authorization response within 800 ms.

Complete Integration Timeline

StageOperationEstimated Time
PreparationRequest credentials, configure whitelist, configure callbacks1-2 days
AuthenticationIntegrate SumSub, complete KYC3-5 days
Card ApplicationCard interface integration, test virtual + physical cards5-7 days
AccountComplete account and transfer interface integration (credit mode)3-5 days
ConsumptionReceive and process Webhook notifications, consumption queries3-5 days
TestingFull chain testing, pre-launch review2-3 days
Total15-25 days

FAQ

Q1: Must users complete KYC before applying for cards?
A: Yes, cardholders must complete KYC authentication with status Approved before applying for cards.
Q2: How long after card application can it be used?
A: Virtual cards are immediately available after application; physical cards require activation after user receives them.
Q3: How do I distinguish between credit and authorization modes?
A: Based on the integration_mode confirmed with business before integration:
  • CREDIT_EXTENSION = Credit mode
  • AUTHORIZATION = Authorization mode
Q4: Why must authorization mode confirm within 800 milliseconds?
A: Authorization mode settles funds in real-time. Merchants must confirm within 800 milliseconds whether to allow the transaction. Timeout defaults to transaction rejection.
Q5: How are consumption fees calculated?
A: Fee details are in the card package configuration at application time, including consumption rate, fees, exchange rate, etc. See the “Constants” section for details.