Electronic Signature SIGNA - JAAK
Contact: engineering@jaak.ai | Version: 1.0.0
Description
JAAK Signa That's a API REST for document digital signature management. It allows to create document templates, send them to signatories and manage complete electronic signature flow.
Capacities
- Loan PDFs and turn them into reusable templates
- distribute documents to multiple signatories by email
- Track signing processes and download signed documents
- Managing sign directories and company information
- To conduct digital certificates (FEL, PSC)
- Generate compliance reports
Environments
| Environment | URL | Purpose |
|---|---|---|
| Sandbox | https://api.sandbox.jaak.ai | Integration tests |
| Production | https://services.api.jaak.ai | Living environment |
Authentication
JWT Beaner tokens. Get through /api/v1/sign-in. Required Leader:
Authorization: Bearer <access_token>
Tokens can be refreshed without re-authentication.
Supported Signature Types
| Type | Description | Security |
|---|---|---|
| Simple | Basic electronic signature with manual drawing or acceptance | Basic |
| Advanced | Code Validation OTP sent to sign's email | Average |
| Biometric | Identification check KYC with selfie and document | High |
Main Module API
7.1 Authentication
Session management with login and closing operations.
7.2 Templates (Templates)
Documents management:
- Create, update, clone and remove PDF-based templates
- Configure fields
7.3 Folders
Organization system for grouping templates.
7.4 Submissions
Main work flow for document distribution:
- States:
pending,in_progress,completed,declined,expired,cancelled
7.4.1 Signature link for the signatory (signing_url)
When the sign link function is enabled for your company, you can order a new sign link for a specific submitter. The link is delivered to the sign by your own channel (for example, a message from your system) rather than depending on the email you send Signa.
Availability
The function will be enabling by environment. If endpoint doesn't respond as described in your environment, check with your contact with JAAK before integrating her.
Authentication: Bearer token (JWT) from a role user owner or administrator from the company. Other roles get 403.
Prior requirement: The company should have activated the function. owner or administrator activated with PUT /api/v1/settings/signing-linkand its text and version are referred to earlier with GET /api/v1/settings/signing-link.
curl -X PUT https://api.sandbox.jaak.ai/api/v1/settings/signing-link \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"consent": {
"accepted": true,
"text_version": "<version del GET>",
"text_sha256": "<sha256 del GET>"
}
}'
Issuing the link
/api/v1/submitters/:id/signing-linkBearer TokenRevolves living submitter codes and returns a new sign link
The :id is the numeric identifier of the submitter (submitters[].id) that returns the creation of the consignment. The request does not have body.
curl -X POST https://api.sandbox.jaak.ai/api/v1/submitters/4812/signing-link \
-H "Authorization: Bearer $TOKEN"
Answer (200 OK):
{
"signing_url": "https://signa.sandbox.jaak.ai/ejemplo-firmante-7f3a?code=ejemplo-codigo-ficticio-no-real",
"expires_at": "2026-10-16T18:45:00Z"
}
Reg fields:
| Field | Description |
|---|---|
signing_url | Subscribe signature link. The single-use code goes to the parameter codeNo field token aside. |
expires_at | Expiry date of link in format RFC 3339. Comes 24 hours after passing. |
Behave:
- Each issue cancels previous living links from the same submitter. Use only the last
signing_urlThat you got. - The link stops functioning when it expires, if a new one is emitted or when the company deactivates the function. Signa It cancels the company's living links.
- Trafficking
signing_urlas a secret: Don't register them on logs and put them on the front.Cache-Control: no-store. - Each issue is registered with the company's audit (
signing_link_issued) without saving the code or link.
Limits:
- Maximum 5 emissions per submitter per hourThe sixth responded.
429. - Can't issue if the submitter has already signed or been rejected (states)
completed,signed_awaiting_kyc,kyc_verified,kyc_failedordeclined).
Mistakes
| Code | Cause | Message |
|---|---|---|
| 400 | :id isn't numeric, or the submitter's in a blocked state | invalid submitter id / submitter already signed or declined (status: ...) |
| 401 | Token absent, invalid or expired | — |
| 403 | Reel not allowed for this operation (e.g. viewer) | insufficient permissions |
| 403 | The function isn't suitable for the company | signing link is not enabled for this account |
| 403 | Rol manager (you have no permission to issue) | role not allowed to issue signing links |
| 404 | Submitter does not exist or belong to another company | submitter not found |
| 429 | The limit of 5 emissions per hour for that sub-mitter was exceeded | signing link rate limit exceeded for this submitter |
| 500 | Internal error at issue or at registration of an audit | failed to regenerate signing link / audit unavailable; link withheld |
7.5 Public Signature
Subscribe's endpoints - require only slug identifiers, without bearer tokens.
7.8 Signators (Signers)
Address Loretta functionality for reusable sign profiles.
7.7 Companies
B2B client management with tax IDs, contact information.
7.10 Certificates
Storage and validation of digital certificates for FIEL /PSC.
7.11 Storage (Storage)
File management with signed URLs, downloads and production of audit traces.
7.13 Assessed contributions (Quotes)
Plan consumption track and function availability check.
7.17 Webhooks
Third party notifications for status changes KYC.
Typical Labour Flow
1. Authentication → / api / v1 / sign-in
2. Crear plantilla → POST /api/v1/templates (desde PDF)
3. To create submission → To distribute to multiple signatories
4. Email invitations sent automatically
5. Firmantes acceden a páginas personalizadas (slugs únicos)
6. For advanced firms: verification OTP required
7. Signators send digital signatures
8. Unloaded documents with complete audit traces
Page
- Based on offset: Parameters
pageandlimit - Based on cursor: Parameters
after/beforefor list of templates
Error Codes
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Action established |
| 400 | Invalid application |
| 401 | Failed authentication |
| 404 | Not found |
| 501 | Operation not available |