Exclusively bind a platform-pool profile to a member solely to create a cardholder with the issuer. This is not identity verification and cannot enable remittance.
Quick KYC
This is none of the following three things:
| Alternative | What it does | Difference from Quick KYC |
|---|---|---|
| Hosted L1 | The member fills in their own information; approval changes level to 1 | Quick KYC does not raise level |
POST /v1/kyc/applications | Reuses the member's own approved basic KYC | That path can also enable remittance |
| Card issuance “Quick Apply” | Issues a physical card from inventory without selecting one | Does not cover virtual cards or exclusively bind an identity |
Quick KYC means: the platform maintains a pool of approved identity packages → exclusively binds one to a member under your merchant → submits that information to the issuer to create a cardholder → card issuance only.
L0 members may use Quick KYC information to obtain cards without first passing their own L1. The merchant must have Quick KYC enabled, the member's binding must be valid, and the profile must satisfy the target product's requirements. Quick KYC cannot bypass verification for card products requiring L2.
Card eligibility is independent of the member's own verification level: a Quick KYC binding neither creates nor overwrites their identity profile and does not change level from 0 to 1. Members with genuine L1 / L2 approval may also explicitly select Quick KYC information; their original verification level remains unchanged.
Read Existing Bindings
GET /v1/kyc/quick
{
"bindings": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"identity_type": "passport",
"identity_issue_country": "HK",
"nationality": "HK",
"address_country": "HK",
"created_at": "2026-09-05T06:12:00.000Z"
}
],
"remaining": 4
}
identity_issue_country is the issuing country of the ID in the bound Quick KYC profile, returned as a two-letter country code (such as HK), not taken from the member's own identity profile. It is returned separately from nationality and address_country. Older Quick KYC profiles without an issuing country return an empty string. This field appears in the list, quick_kyc.bindings from GET /v1/kyc, and the binding returned when initially binding or reusing a profile.
⚠ ID numbers and images are not exposed.
⚠ GET /v1/kyc includes the same quick_kyc section. Do not equate bindings.length > 0 with level >= 1.
Explicit Binding
POST /v1/kyc/quick
Provide card_product_id (matched against the product's country, document, and cardholder name requirements), or country + identity_type. Profiles selected by country must still pass the target card product's issuance checks later. Chinese names, addresses, and other text in both standard KYC and Quick KYC are converted to unaccented pinyin before submission to the service provider; product name requirements are checked against the converted result. Original profiles are retained. Email addresses, ID numbers, phone numbers, country codes, and attachment identifiers are not converted. A new allocation also requires email, which must never have been used in any standard KYC, Quick KYC pool, or historical profile, including the member's own verified records and rejected, deleted, or disabled records. Comparison trims surrounding whitespace and ignores case, while retaining Gmail +别名. Keep the email address, including any alias, within 50 characters to satisfy the strictest card product limit. Product-based applications exceeding that product's email length limit are rejected before allocation or charging.
{"card_product_id":"cpd_42","email":"member+quick20260906@gmail.com"}
Missing or invalid values return invalid_fields; an email already used returns request_rejected. Neither charges a fee nor reserves a profile. Reusing an existing binding requires no new email and does not change the bound email.
- Matching binding exists → 200, no fee
- New allocation → 201, a one-time profile fee (default 10 USDT; merchant cost follows configured rates)
- Maximum 5 profiles per member
Platform-operated services debit the member's available balance; downstream merchant_hosted services debit your prepaid funds. Insufficient funds fail the entire operation without reserving a profile.
Members with genuine L1 / L2 approval can also bind Quick KYC. The two are stored independently: binding does not overwrite the verified profile or change existing verification levels and service permissions.
L0 Binding, Quote, and Card Application
Use the same merchant credentials and x-on-behalf-of (the member's external_member_id or mem_…) for the following requests. Permissions kyc:write, cards:read, and cards:write are required; POST requests carry x-idempotency-key under the Open API signing rules. Use a different request idempotency key for each independent operation; retain the original key and body when retrying that operation.
- Select an enabled product from
GET /v1/cards/productsand use itsidas thecard_product_idfor the explicit binding above. - Call
POST /v1/kyc/quickand savebinding.idfrom the response. - Request a quote using that binding:
GET /v1/cards/products/{id}/quote?quick_kyc_binding_id=7c9e6679-7425-40de-944b-e07fc1f90ae7
Replace {id} in the path with the selected product ID, such as cpd_42. can_apply: true means the member passes eligibility checks with the selected profile. It neither charges a fee nor guarantees sufficient funds at submission; the application rechecks the account, product, limits, and funds.
- Pass the same
quick_kyc_binding_idin the application body:
{
"product_id": "cpd_42",
"quick_kyc_binding_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"source_asset": "USDT",
"first_topup": "0",
"funding_source": "merchant",
"client_key": "member-42-card-order-001"
}
The example above applies to products allowing no initial top-up. For other products, provide an amount meeting the catalog's minimum initial top-up. funding_source: merchant is only for merchant_hosted merchants; wholesale issuance cost and the initial top-up debit merchant prepaid funds, not the member wallet. Default member mode requires enough member wallet balance for the issuance fee and initial top-up, plus sufficient merchant prepaid funds for wholesale cost. Quick KYC profile fees and issuance fees are recorded separately; reusing a binding does not charge the profile fee again.
- Save the returned application
id, queryGET /v1/cards/applications/{id}, and handle card issuance events. 201 means accepted, not issued: products requiring manual review first returnpending_review; automatically reviewed products first returnsubmitted. Details becomeissuedonly after successful issuance.
client_key is the card issuance business idempotency key: keep it unchanged when retrying the same business operation. It prevents duplicate issuance and issuance fees even after the request-header idempotency window expires. Do not generate a new client_key for a network retry.
The binding used for both quote and application must belong to the current merchant and member. An invalid binding or one belonging to someone else returns invalid_fields. If the selected profile does not satisfy the product, follow the quote's reason; switching members cannot bypass the requirement.
Automatic Reuse or Allocation
POST /v1/cards/applications automatically reuses or allocates a profile when the member lacks genuine L1. New allocations require quick_kyc_email. Calling POST /v1/kyc/quick first is unnecessary.
An existing standard KYC profile still awaiting approval is not automatically replaced with Quick KYC. Members needing Quick KYC for issuance (including L0, L1, and L2) may explicitly select quick_kyc_binding_id using the flow above.
If an existing profile's country and document satisfy the product, reuse takes priority, without another profile fee.
Failed card issuance does not refund the profile fee or release the profile. The same binding can be used for another eligible product. Issuance fees are handled separately according to the issuance result; do not combine these two fees.
Remittance Still Requires Genuine L1
For a member with only Quick KYC, level from GET /v1/kyc remains 0. A Quick KYC binding cannot replace the member's own verification required for remittance or other services. Creating a Personal Remittance account at L0 returns kyc_required; creating an L2 verification session returns state_invalid.
For those services, first complete hosted L1, then L2 as required. Prior use of Quick KYC does not prevent the member from later completing genuine L1 and proceeding to L2.