FirmARDigital

Developer documentation

Getting started

Quickstart

A minimal flow to register a signer, create a session, and check its status from your backend.

01

Register the signer

Store the returned ID to link it to your system.

bashFirmARDigital API
curl --request POST https://www.firmardigital.com/api/v1/registered-signers \
  --header "Authorization: Bearer fmr_test_TU_CLAVE" \
  --header "Content-Type: application/json" \
  --data '{"externalId":"cliente-4821","fullName":"María González","email":"maria@ejemplo.com"}'
201

Sandbox response

jsonFirmARDigital API
{
  "success": true,
  "data": {
    "id": "sandbox_signer_0b11…",
    "externalId": "cliente-4821",
    "status": "ENROLLED",
    "enrollmentUrl": null,
    "expiresAt": null,
    "alreadyEnrolled": false,
    "sandbox": true
  }
}
02

Create the session

The API returns a URL for the signer to complete the process.

bashFirmARDigital API
curl --request POST https://www.firmardigital.com/api/v1/signing-sessions \
  --header "Authorization: Bearer fmr_test_TU_CLAVE" \
  --header "Idempotency-Key: solicitud-4821" \
  --form "file=@acuerdo.pdf;type=application/pdf" \
  --form 'data={"externalId":"cliente-4821","title":"Acuerdo comercial","recipient":{"name":"María González","email":"maria@ejemplo.com"}}'
201

Sandbox response

jsonFirmARDigital API
{
  "success": true,
  "data": {
    "documentId": "sandbox_document_5c2e…",
    "sessionUrl": "http://localhost:3000/sandbox/signing-sessions/sandbox_session_…",
    "expiresAt": "2026-08-01T18:00:00.000Z",
    "reused": false,
    "sandbox": true
  }
}
03

Check the status

Use polling or webhooks to detect when it finishes.

bashFirmARDigital API
curl https://www.firmardigital.com/api/v1/signing-sessions/DOCUMENT_ID \
  --header "Authorization: Bearer fmr_test_TU_CLAVE"