Skip to main content

📄 Guide

Employees are the end cardholders — and the source of custodians for company cards. Creating an employee runs asynchronous KYC name screening; only after it passes can you issue them cards. This page covers creation, result handling and information maintenance.

Step 1: create the employee

POST /open-api-corp/customer/v1/apply (the company must be ACTIVE).
Uniqueness: within one partner, employee email and phone (area code + number) are unique across companies and are never released, even after a rejection (EMAIL_DUPLICATE / PHONE_DUPLICATE). An address country on the sanctions list returns COUNTRY_SANCTIONED.

Step 2: get the KYC result

Rely on webhooks CUSTOMER_CREATED / CUSTOMER_REJECTED, with GET /open-api-corp/customer/v1/query-apply as fallback (by customerApplyId or by your own customerRef). On status=SUCCEED you receive customerId (persist it); on REJECTED, rejectMessage explains why. Resubmission after rejection: POST /open-api-corp/customer/v1/resubmit with customerApplyId plus the three corrected name parts, re-reviewed under the same application; calling outside the REJECTED state returns STATUS_CONFLICT.

Maintaining information and status

Query employee detail: GET /open-api-corp/customer/v1/query?customerId=... — name, contact details, status and the address list (empty if never set). Update employee information: each of the four categories has its own endpoint, and the path states the intent: Freeze / unfreeze: POST /open-api-corp/customer/v1/update-restrictions, identical semantics to organizations (addRestrictions / removeRestrictions, the 5 capability-domain codes only). Freezing an employee makes every card under them decline transactions. CUSTOMER_CREATED / CUSTOMER_REJECTED / CUSTOMER_STATUS_CHANGED (carries addRestrictions / removeRestrictions and remark).

Next steps