Skip to main content

📄 Guide

This page assumes you have obtained credentials, registered your callback URL and read the shared conventions in First steps. Taking “issue an employee a virtual card paid from the company pool” as the example, the following walks the whole flow.

The shortest issuing path

The order cannot be skipped: creating an employee requires the company to be ACTIVE (wait for step 3); applying for a virtual card requires the holder (company or employee) to be ACTIVE (wait for step 5). On rejection: a rejected company / employee KYB / KYC goes through resubmit, reusing the same the application ID.

Request signing

Every business endpoint (paths starting with /open-api-corp/) must be signed; a failed signature check returns HTTP 401.
Request signing stepsRequest signing steps
Request headers Signature algorithm
The HMAC output is lowercase hex; the string to sign is processed as UTF-8 bytes. For POST, the payload is the request body verbatim — the bytes you sign and the bytes you send must be identical (use --data-binary with cURL).
  • Timestamp window: the server checks |now − timestamp| ≤ 5 seconds; outside the window it returns DAPI_TIMESTAMP_EXPIRED. Make sure NTP is enabled on your servers.
  • Replay protection: the same signature is accepted only once within a short window — a repeat returns DAPI_NONCE_DUPLICATE; a nonce outside the range returns DAPI_NONCE_ILLEGAL. Generate a fresh nonce for every request.
  • The SK never appears in any request; it is used only to compute the signature locally.
Full example · company onboarding (bash)

Receiving webhooks

Callback flow: an HTTP POST from DCS to your server, with the unified envelope {webhookId, webhookType, businessId, data, notificationTime} (data}`. Your receiver must implement four things:
The retry window is about 3 minutes: a non-2xx or a timeout triggers redelivery, up to 3 retries about 1 minute apart with no backoff (at most 4 deliveries including the first). After all fail the event is marked failed and alerted. Poll the query endpoints on a schedule — they are the fallback when callbacks fail outright.

Next steps