📄 Guide
Employees are the end cardholders, and creating one is the mandatory step before any card can be issued to them. You submit the employee’s details under an ACTIVE company, DCS accepts the application and runs individual due diligence (KYC name screening) asynchronously; rely on webhooks for the result with the query endpoint as fallback, and if KYC rejects the application, correct the name and resubmit under the samecustomerApplyId. This page covers all fields and examples for the three endpoints — apply, query-apply and resubmit; for the capability overview see Managing employees.
Flow at a glance
The application state machine has only three states:PENDING / SUCCEED / REJECTED. After a rejection you do not start over with a new ID — you resubmit under the same customerApplyId.
Prerequisites
- The company already exists and is
ACTIVE(if not, start with Managing companies). - You have the employee’s name, mobile number and email ready; if a physical card will be needed, also prepare a shipping address.
Submit the application
POST /open-api-corp/customer/v1/apply
Creates an employee: submit the details, and individual due diligence (KYC name screening) runs asynchronously. Pass the shipping address as the address information.
Request parameters
addresses[] element structure:
An employee without a shipping address cannot apply for a physical card. If you only issue virtual cards you may omit
addresses and add it later through the update endpoint when a physical card is needed.Request example
Response example
data, customerApplyId is the employee application ID (the key for the query and resubmit calls that follow — persist it), and status is PENDING on acceptance.
Error codes
Related webhooks:
CUSTOMER_CREATED / CUSTOMER_REJECTED.
Query the application progress and result
GET /open-api-corp/customer/v1/query-apply
Rely on the webhooks as your primary channel; use this endpoint as the polling fallback.
Request parameters
Response data
Request example
Response example (approved)
status=SUCCEED and customerId has been issued — persist it:
Response example (KYC rejected)
status=REJECTED, with rejectMessage explaining why; use the resubmit endpoint below to try again:
Error codes
Resubmit after a rejection
POST /open-api-corp/customer/v1/resubmit
After a KYC rejection, correct the name and send the application back for review under the same customerApplyId.
Request parameters
Request example
Response example
Error codes
Related webhooks:
CUSTOMER_CREATED / CUSTOMER_REJECTED.
Next steps
- Once the employee is created, maintain their details and freeze status: Employee details and status
- Issue cards once the employee is
ACTIVE: Managing cards

