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