DKBSignDocs

API reference

POSTRequires Bearer token

Send qualified signature OTP

/api/v4/sign/qualified/otp

Send the one-time code required by POST /api/v4/sign/qualified.

channel is email, sms, or whatsapp. email always identifies the signer and must match signer.email on the signature call.

Email uses the same fields as POST /api/notifications/email: subject (max 255) and body (HTML), plus optional attachments (max 10, each with filename and content_base64).

SMS and WhatsApp use the same fields as POST /api/notifications/sms: phone_number (E.164, starts with +) and message (max 255 once the code is inserted).

Write {{otp_code}} where the generated code should appear. {{expires_minutes}} is optional. dev_otp_code is only present when the server is configured to return it.

Path parameters

This endpoint has no path parameters.

Query parameters

This endpoint has no query parameters.

Request body

FieldTypeDescription
channel
Required
stringemail, sms, or whatsapp.
e.g. "email"
email
Required
stringSigner email. Binds the code and must match signer.email on the signature call. For channel=email the message is sent here.
e.g. "awa.kone@example.com"
subject
stringEmail subject (max 255). Required when channel is email.
e.g. "Votre code de signature"
body
stringEmail HTML body. Required when channel is email. Must contain {{otp_code}}.
e.g. "<p>Votre code est {{otp_code}}.</p>"
attachments
arrayOptional email attachments (max 10). Same shape as POST /api/notifications/email.
phone_number
stringE.164 number. Required when channel is sms or whatsapp.
e.g. "+2250700000000"
message
stringSMS or WhatsApp text (max 255 after the code is inserted). Must contain {{otp_code}}.
e.g. "Votre code est {{otp_code}}"

Responses

StatusMeaning
200Code sent
401Missing or invalid Bearer token.

Request

curl
curl -X POST 'https://api.dkbsigns.com/api/v4/sign/qualified/otp' \
  -H 'Authorization: Bearer $DKBSIGN_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"channel":"email","email":"awa.kone@example.com","subject":"Votre code de signature","body":"<p>Votre code est {{otp_code}}.</p>","phone_number":"+2250700000000","message":"Votre code est {{otp_code}}"}'

Response 200

json
{
  "message": "Code de vérification envoyé",
  "expires_in_minutes": 10,
  "channel": "email",
  "email": "awa.kone@example.com"
}