Headless signature event

Same delivery, headers, HMAC signatures and 72-hour retry as signingEvent. signature.confirmation_required carries the new verificationCode when the second confirmation starts. Never personal data: no personal code, no phone, no certificate subject.

postWebhooksignatureEvent

Payload

event'signature.confirmation_required' | 'signature.signed' | 'signature.declined' | 'signature.expired' | 'signature.failed' | 'signature.cancelled' required
signatureIdstring uuid required
status'pending' | 'signed' | 'declined' | 'expired' | 'failed' | 'cancelled' required
occurredAtstring date-time required
externalIdstring
step'authentication' | 'signing'
verificationCodestring
failureReason'identity_mismatch' | 'certificate_not_qualified' | 'certificate_rotated' | 'provider_error' | 'timestamp_unavailable' | 'initiation_unknown'

identity_mismatch - the certificate belongs to another person. certificate_not_qualified - the certificate cannot sign documents. certificate_rotated - the signer's certificate changed since Tvarka last saw it; the new one is kept, so a retry needs one confirmation. provider_error - the signing service failed. timestamp_unavailable - no qualified timestamp could be obtained. initiation_unknown - the start may have reached the signer's phone but no answer came back; it is never repeated. Ask the signer to dismiss any prompt and retry after two minutes. None of these is billed.

completionMode'signed' | 'sandbox_simulation'
sandboxboolean

Response

Acknowledged. Any 2xx stops redelivery.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.