API reference · Sessions
Signing sessions
A session represents a document and signer workflow. Create it from your backend and track its status until the final document is ready.
POST
/api/v1/signing-sessionsCreate sessionRequires `signing-sessions:write`. Accepts `multipart/form-data`: a PDF in `file` and the JSON object in `data`.
bashFirmARDigital API
curl --request POST https://www.firmardigital.com/api/v1/signing-sessions \
--header "Authorization: Bearer fmr_live_TU_CLAVE" \
--header "Idempotency-Key: contrato-4821-v1" \
--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"}
}'Multipart `data` part
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| title | string | Sí | Visible document title, up to 255 characters. |
| registeredSignerId | string | No | ID returned when creating the signer. Provide this or externalId. |
| externalId | string | No | Your own ID used during enrollment. Provide this or registeredSignerId. |
| recipient.name | string | Sí | Session recipient's name. |
| recipient.email | Sí | Email that receives the signing request. | |
| signaturePlacements | array | No | Optional. Positions with pageIndex, x, y, width, and height; without them the signer chooses the location. |
201
Session created
jsonFirmARDigital API
{
"success": true,
"data": {
"documentId": "cme0tc1tw0003s6a1c4g2n8fj",
"sessionUrl": "https://www.firmardigital.com/f/cme0tc1tw…",
"expiresAt": "2026-08-01T18:00:00.000Z",
"reused": false
}
}GET
/api/v1/signing-sessions/:idCheck statusRequires `signing-sessions:read`. When the status is `SIGNED`, the response may include a download URL.
bashFirmARDigital API
curl https://www.firmardigital.com/api/v1/signing-sessions/DOCUMENT_ID \
--header "Authorization: Bearer fmr_live_TU_CLAVE"200
Signed document
jsonFirmARDigital API
{
"success": true,
"data": {
"documentId": "cme0tc1tw0003s6a1c4g2n8fj",
"status": "SIGNED",
"registeredSignerId": "cme0s9s8r0001s6a1wz6w2d4f",
"recipientEmail": "maria@ejemplo.com",
"signedAt": "2026-08-01T16:22:41.000Z",
"createdAt": "2026-08-01T16:00:00.000Z",
"downloadUrl": "https://www.firmardigital.com/api/v1/signing-sessions/cme0tc1tw…/download"
}
}GET
/api/v1/signing-sessions/:id/downloadGet signed PDFRequires `signing-sessions:read`. Returns a temporary URL only for signed sessions whose verified copy is available. The URL expires after 3,600 seconds.
200
Temporary download URL
jsonFirmARDigital API
{
"success": true,
"data": {
"url": "https://storage.example.com/signed/…",
"sha256": "ab47…f0c2",
"expiresInSeconds": 3600
}
}