Signatures
Signatures
Section titled “Signatures”Aptiwise supports digital signatures on workflow approval steps. Approvers can set up a saved signature in their profile, which is then automatically applied when they sign a step. External approvers who don’t have accounts are handled automatically.
How Signatures Work in Workflows
Section titled “How Signatures Work in Workflows”Use approval_type: needs_to_sign on any decision step to require a signature instead of a plain approve action.
workflow: contract_sign: name: "Contract Sign-off" type: "decision" approver: "legal_counsel" approval_type: "needs_to_sign" on_approve: continue_to: "completion" on_reject: end_workflow: trueWhen the approver acts on the step, their saved signature is automatically retrieved from their employee record and recorded against the approval step.
Mapping a Signature to a Form Field
Section titled “Mapping a Signature to a Form Field”Use signature_field to write the captured signature into a specific signature-type form field — useful for contracts requiring signatures in designated locations.
form: fields: - name: manager_signature type: signature label: "Manager Signature" - name: legal_signature type: signature label: "Legal Department Signature"
workflow: manager_review: approver: department_manager approval_type: needs_to_sign signature_field: manager_signature # populates this form field
legal_review: approver: legal_team approval_type: needs_to_sign signature_field: legal_signature # populates this form field on_approve: end_workflow: trueSetting Up Your Signature (Registered Employees)
Section titled “Setting Up Your Signature (Registered Employees)”Registered employees can save a signature through their profile. The saved signature is automatically applied whenever they sign a step — no re-drawing required.
API endpoints (requires login):
| Method | Endpoint | Description |
|---|---|---|
POST |
/services/v1/signatures/me |
Upload a drawn signature (base64 PNG) |
GET |
/services/v1/signatures/me |
Retrieve your current signature info |
GET |
/services/v1/signatures/download |
Download your signature image |
Upload request body:
{ "data": "data:image/png;base64,iVBORw0KGgo...", "signer_name": "Alice Manager", "signer_position": "Head of Engineering"}The signature is stored in the configured object storage (S3 or local) under signatures/employees/{id}/.
External Approvers (No Account Required)
Section titled “External Approvers (No Account Required)”External approvers — vendors, clients, contractors — receive a one-time email link. They do not need an Aptiwise account.
This covers signature-specific behaviour. For the full external approver guide — how the email link works, dynamic email from form fields, employee record resolution, and all supported action types — see External Approvers.
Signature endpoints for external approvers (no login required):
| Method | Endpoint | Description |
|---|---|---|
GET |
/services/v1/signatures/public/{token} |
Check whether a saved signature exists |
POST |
/services/v1/signatures/public/{token} |
Save a drawn signature (base64 PNG) |
Upload body:
{ "data": "data:image/png;base64,iVBORw0KGgo..."}Storage
Section titled “Storage”Signatures are saved as PNG files under signatures/employees/{employee_id}/signature_{timestamp}.png using the configured storage backend (S3, GCS, or local filesystem — same backend as form attachments).
The employee record tracks:
| Column | Description |
|---|---|
signature_mode |
Always drawn for uploaded signatures |
signature_path |
Storage path to the PNG file |
signature_updated_at |
Last time the signature was saved |
See also:
- Approval Types —
needs_to_signandsignature_fieldreference - Decision Steps — general decision step configuration
