Skip to main content

📄 Guide

Whether you are running a technical evaluation or starting the integration outright, walk through this page first: get the credentials, callback URL, egress IPs and shared conventions in place, then move on to the Quickstart to issue your first card. DCS, as the licensed issuer, carries issuing and settlement; you implement three things — signing, calling and receiving webhooks.

Integration stages

From contract signing to running at scale, integration goes through six stages. Each has explicit prerequisites; do not enter a stage before the previous one is ready.
Six-stage integration pathSix-stage integration path

Environments and credentials

  • Environment isolation: the test and production environments are fully independent deployments — domains, credentials, data and callback keys are all separate, non-interchangeable and non-migratable; switch both the domain and the credentials when switching environments. Both use the same path prefix, /open-api-corp/.
  • Credential handling: the AK (API key) identifies the partner in request headers; the SK (secret key) is used only to compute signatures locally and doubles as the decryption key for the secure card endpoint; the webhook signing key is issued separately by DCS. Store the SK in a key-management service or encrypted configuration — never in code repositories, logs or the frontend.

Three ground rules

Every create-type endpoint is accepted asynchronously. Company onboarding, employee creation and virtual card application return only an the application ID and status=PENDING synchronously — meaning “accepted”, not “created”. For the real final state, rely on webhooks first, with polling of the query endpoints as the fallback. Success is judged by the response body’s code, not the HTTP status. The unified response envelope is {code, message, data}; only code == "SYS_SUCCESS" is success, everything else is failure. The HTTP status is informational only (authentication failures return 401). Your identity comes from the AK, never from the request body. DCS establishes the partner identity from the AK signature check on the request headers. Do not carry any partner or enterprise identifier in the body — if you do, it is ignored.

Shared conventions

This section sets the ground rules shared by every endpoint; each endpoint page then only needs to describe its own parameters and fields. ID conventions. Every ID in the contract is a JSON string: organizationId and customerId are UUID-shaped strings from the unified user center; cardId, the application ID and webhookId are 19-digit snowflake strings (transmit them as strings — numeric literals overflow the double-precision safe-integer range and get silently truncated); transferId, ruleId, statementId, transactionId and the rest are business strings to pass through verbatim. The meaning of a polymorphic ID (subjectId, subjectId, subjectId) is determined by the type field in the same structure, never inferred from its shape. Partner-side IDs (externalXxx) are custom strings matching ^[A-Za-z0-9_-]+$, at most 64 characters, and double as idempotency keys.

Next steps