Skip to content

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.

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: true

When the approver acts on the step, their saved signature is automatically retrieved from their employee record and recorded against the approval step.

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: true

Setting 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 — 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..."
}

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: