Compliance & Digital Signatures
Digital sign-off on completed work orders for ISO 9001 and FDA 21 CFR Part 11 compliance, with tamper-evident HMAC signatures and PDF certificate generation.
Sign off a work order
POST /work-orders/{work_order_id}/signoffs
Auth: Bearer JWT (admin, operator)
Requires password re-authentication for non-repudiation.
curl -X POST https://api.haltless.io/api/v1/work-orders/WO_ID/signoffs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"password": "your_current_password"}'
Response 201:
{
"id": "uuid",
"work_order_id": "uuid",
"signed_by": "uuid",
"signer_name": "Jane Smith",
"signer_role": "admin",
"signature_hash": "a1b2c3d4e5f6...",
"signed_at": "2026-04-04T12:00:00Z",
"created_at": "2026-04-04T12:00:00Z"
}
Requirements:
- Work order must have status
completed - Maximum 20 sign-offs per work order
- Password must match the current user's password
Signature: An HMAC-SHA256 hash computed over a canonical JSON payload containing the work order details, signer information, and timestamp. This provides tamper-evidence , any modification to the signed data would produce a different hash.
List sign-offs
GET /work-orders/{work_order_id}/signoffs
Auth: Bearer JWT (any role)
Returns all sign-offs for a work order, newest first.
Verify a sign-off
GET /work-orders/{work_order_id}/signoffs/{signoff_id}/verify
Auth: Bearer JWT (any role)
Recomputes the HMAC signature and performs a constant-time comparison against the stored hash.
{
"signoff_id": "uuid",
"is_valid": true,
"detail": "Signature verification passed. The sign-off record has not been tampered with."
}
If tampered:
{
"signoff_id": "uuid",
"is_valid": false,
"detail": "Signature mismatch detected. The sign-off record may have been altered."
}
Download certificate
GET /work-orders/{work_order_id}/certificate
Auth: Bearer JWT (any role)
Downloads a PDF maintenance completion certificate containing:
- Work order details (title, machine, dates, status)
- All digital signatures with signer names, roles, and timestamps
- HMAC verification status for each signature
- QR code or reference number for audit traceability
Response: application/pdf