DKBSignDocs

API reference

POSTPublic

Sign a public envelope

/api/v4/public/envelopes/{signer_uuid}/sign

All fields optional. OTP must be verified; identity must be cleared when required.

extra_positions is keyed by document uuid. Each mark: page, x, y (mm, 0–5000), optional width/height, type (signature, initials, seal, qrcode, date, text, approval). Max 50 marks per document.

400 SEAL_CONSENT_REQUIRED when a seal is applied without seal_consent. 403 identity codes (IDENTITY_REQUIRED, IDENTITY_PENDING, …). 503 TIMESTAMP_UNAVAILABLE_RETRY is retryable.

Path parameters

FieldTypeDescription
signer_uuid
Required
stringPath parameter signer_uuid.

Query parameters

This endpoint has no query parameters.

Request body

FieldTypeDescription
signature_image_base64
stringPNG data URL of the signature.
initials_image_base64
stringPNG data URL of the initials.
seal_image_base64
stringPNG data URL of the seal.
seal_consent
booleanConsent to apply the company seal when required.
e.g. true
mfa_code
stringTOTP for qualified internal signers.
e.g. "123456"
second_otp_code
stringSecond email OTP when TOTP is not enrolled.
extra_positions
objectExtra marks keyed by document uuid.

Responses

StatusMeaning
200See the example response.
401Missing or invalid Bearer token.

Request

curl
curl -X POST 'https://api.dkbsigns.com/api/v4/public/envelopes/550e8400-e29b-41d4-a716-446655440000/sign' \
  -H 'Content-Type: application/json' \
  -d '{"signature_image_base64":"example","initials_image_base64":"example","seal_image_base64":"example","seal_consent":true,"mfa_code":"123456","second_otp_code":"example","extra_positions":{}}'

Response 200

json
{
  "message": "Signature enregistrée avec succès",
  "signer_status": "signed",
  "envelope_completed": false
}