Skip to content

API Reference

Endpoint Overview

#EndpointPathIdempotency KeyDescription
1List Card Headers/api/v1/openapi/card_headers/listList available card headers
2List Card Configs/api/v1/openapi/card_configs/listList packages under a header
3List Cards/api/v1/openapi/cards/listList the merchant's cards (status / date / balance filters)
4Apply Virtual Card/api/v1/openapi/card/apply✅ RequiredAsync card open
5Preview First Deposit/api/v1/openapi/card/first_deposit/previewDry-run first-deposit fee / freeze
6Create Recharge/api/v1/openapi/card/recharge✅ RequiredAsync recharge
7Get Card Info/api/v1/openapi/card/infoStatus polling
8Webhook Events History/api/v1/openapi/webhook_events/listDebug webhook delivery
9List Transactions/api/v1/openapi/transactions/listTransaction details across all cards
10List Card Transactions/api/v1/openapi/card/transactions/listTransaction details for one card
11Freeze Card/api/v1/openapi/card/freezeFreeze an active virtual card
12Unfreeze Card/api/v1/openapi/card/unfreezeUnfreeze a user-frozen card

Common Conventions

  • Method: all endpoints are POST
  • Content-Type: application/json (both request and response)
  • Auth: 4 signing headers per request (HMAC Authentication)
  • Localization: switch zh/en via Accept-Language: zh-CN | en-US
  • Response envelope:
json
{
  "code": 200,           // Mirrors HTTP status
  "message": "OK",
  "message_key": "...",  // Only on errors
  "data": { ... }        // Business payload
}

Pagination

All */list endpoints (except /card_configs/list) support pagination:

FieldTypeDefaultLimit
pageint1≥ 1
page_sizeint20≤ 100

Response includes:

json
{
  "list": [...],
  "total": 12,
  "page": 1,
  "page_size": 20,
  "total_pages": 1,
  "has_next": false,
  "has_prev": false
}

Released under MIT-equivalent terms.