Skip to main content

📄 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 same customerApplyId. 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.
Employee creation and KYC outcome branchesEmployee creation and KYC outcome branches

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.
Uniqueness rules: within one partner, an employee’s email and phone (area code + number) are unique across companies, and once taken they are never released — even if the application was rejected. Duplicate submissions return EMAIL_DUPLICATE / PHONE_DUPLICATE respectively. Before submitting, make sure the contact details are not already used by another employee, including historical rejected applications.

Request example

Response example

In the response 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.
To rename an employee after the entity has been created successfully, use the update-name endpoint rather than resubmit; resubmit only serves the case where the application was rejected and no entity exists yet.

Next steps