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

EnvironmentURLPurpose
Sandboxhttps://api.sandbox.jaak.aiIntegration tests
Productionhttps://services.api.jaak.aiLiving 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

TypeDescriptionSecurity
SimpleBasic electronic signature with manual drawing or acceptanceBasic
AdvancedCode Validation OTP sent to sign's emailAverage
BiometricIdentification check KYC with selfie and documentHigh

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

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>"
    }
  }'
POST/api/v1/submitters/:id/signing-link

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

FieldDescription
signing_urlSubscribe signature link. The single-use code goes to the parameter codeNo field token aside.
expires_atExpiry 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_url That 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_url as 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_failed or declined).

Mistakes

CodeCauseMessage
400:id isn't numeric, or the submitter's in a blocked stateinvalid submitter id / submitter already signed or declined (status: ...)
401Token absent, invalid or expired—
403Reel not allowed for this operation (e.g. viewer)insufficient permissions
403The function isn't suitable for the companysigning link is not enabled for this account
403Rol manager (you have no permission to issue)role not allowed to issue signing links
404Submitter does not exist or belong to another companysubmitter not found
429The limit of 5 emissions per hour for that sub-mitter was exceededsigning link rate limit exceeded for this submitter
500Internal error at issue or at registration of an auditfailed 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 page and limit
  • Based on cursor: Parameters after/before for list of templates

Error Codes

CodeDescription
200Success
201Action established
400Invalid application
401Failed authentication
404Not found
501Operation not available