Cuándo se puede
Mientras el documento no esté firmado ni rechazado (sign_status 1 o 2). Para un firmante, además, mientras ese firmante no haya firmado ni rechazado (sign_status PENDING).
Los métodos de firma (con identidad, firma simple, e.firma o FIREL) se eligen al crear el documento, pero puedes cambiarlos después mientras el proceso de firma no haya terminado. Hay dos niveles:
Los cambios aplican a las firmas que faltan. Lo que ya se firmó no se modifica.
Cuándo se puede
Mientras el documento no esté firmado ni rechazado (sign_status 1 o 2). Para un firmante, además, mientras ese firmante no haya firmado ni rechazado (sign_status PENDING).
Quién puede
Cualquier usuario de la carpeta de trabajo del documento, excepto los invitados. No aplica a documentos que viven dentro de un contenedor.
Así se expresa cada método en el documento y en el firmante. Los valores van en mayúsculas.
| Método | En el documento | En el firmante (allowed_signature_methods) |
|---|---|---|
| Firma con identidad (INE) | allow_type_signatures incluye VERIFICAMEX e identity_providers incluye VERIFICAMEX | IDENTITY |
| Firma simple | allow_type_signatures incluye VERIFICAMEX e identity_providers incluye LOCAL | SIMPLE |
| e.firma (SAT) | allow_type_signatures incluye EFIRMA | EFIRMA |
| FIREL (Poder Judicial) | allow_type_signatures incluye FIREL (y TEPJF para el Tribunal Electoral) | FIREL (incluye TEPJF) |
Método: PATCH https://api.digitafirma.com/v1/documents/{uuid}/signature_methods
| Campo | Tipo | Descripción |
|---|---|---|
uuid | string | ID del documento. |
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
allow_type_signatures | Array | Sí | Reemplaza los tipos de firma permitidos: VERIFICAMEX, EFIRMA, FIREL, TEPJF. Al menos uno. |
identity_providers | Array | No | Solo tiene efecto con VERIFICAMEX: VERIFICAMEX (firma con identidad) y/o LOCAL (firma simple). Si lo omites, se conservan los actuales. Si lo mandas vacío junto con VERIFICAMEX, es un error. |
El resto de la configuración del documento (colores, logo, notificaciones, etc.) no cambia.
curl --location --request PATCH 'https://api.digitafirma.com/v1/documents/{uuid}/signature_methods' \--header 'X-Api-Key: {X-API-KEY}' \--header 'Content-Type: application/json' \--data '{ "allow_type_signatures": ["VERIFICAMEX", "EFIRMA"], "identity_providers": ["VERIFICAMEX", "LOCAL"]}'Regresa el documento con la misma estructura que la respuesta de Crear un documento, con los métodos nuevos en attributes.config (aquí recortada).
{ "type": "documents", "id": "ac110005-9df4-1d1b-819d-f5eac471003a", "links": { "self": "/documents/ac110005-9df4-1d1b-819d-f5eac471003a" }, "attributes": { "file_name": "contrato-servicios.pdf", "sign_status": 1, "signed": false, "config": { "allow_type_signatures": ["VERIFICAMEX", "EFIRMA"], "primary_color": null, "secondary_color": null, "lock_phone_for_otp": false, "identity_providers": ["VERIFICAMEX", "LOCAL"], "custom_branding": false } }}{ "errors": [ { "status": 400, "title": "Validation Error", "detail": "document: El documento ya está firmado; sus métodos de firma ya no se pueden modificar" } ]}Método: PATCH https://api.digitafirma.com/v1/documents/{uuid}/signatures/{signatureId}/signature_methods
| Campo | Tipo | Descripción |
|---|---|---|
uuid | string | ID del documento. |
signatureId | string | ID del firmante (el id de cada elemento de signatures en la respuesta del documento). |
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
allowed_signature_methods | Array | null | No | Reemplaza los métodos del firmante: IDENTITY, SIMPLE, EFIRMA, FIREL. Vacío ([]) o null quita la restricción y el firmante vuelve a usar los métodos del documento. |
curl --location --request PATCH 'https://api.digitafirma.com/v1/documents/{uuid}/signatures/{signatureId}/signature_methods' \--header 'X-Api-Key: {X-API-KEY}' \--header 'Content-Type: application/json' \--data '{ "allowed_signature_methods": ["EFIRMA", "FIREL"]}'{ "data": [ { "type": "signatures", "id": "ac110005-9df4-1d1b-819d-f5eac478003b", "links": { "self": "/signatures/ac110005-9df4-1d1b-819d-f5eac478003b" }, "attributes": { "name": "Juan Perez", "rfc": null, "curp": null, "email": "jpe@gmail.com", "sign_status": "PENDING", "certificate_serial_number": null, "certificate_issuer_name": null, "signed_at": null, "signature": null, "allowed_signature_methods": ["EFIRMA", "FIREL"], "updatedAt": "2026-05-05T09:12:44.118302", "createdAt": "2026-05-04T20:14:56.888302" }, "relationships": { "timestamp": null } } ], "links": { "self": "/signatures" }}Si quitas la restricción, allowed_signature_methods deja de aparecer en la respuesta.
{ "errors": [ { "status": 400, "title": "Validation Error", "detail": "signature: El firmante ya firmó; sus métodos de firma ya no se pueden modificar" } ]}| Código | Mensaje (detail) | Causa |
|---|---|---|
| 400 | document: El documento ya está firmado; sus métodos de firma ya no se pueden modificar | Todos los firmantes ya firmaron. |
| 400 | document: El documento fue rechazado; sus métodos de firma ya no se pueden modificar | Un firmante rechazó el documento. |
| 400 | document: Los métodos de firma de un documento dentro de un lote no se pueden modificar | El documento vive dentro de un contenedor. |
| 400 | allow_type_signatures: Elige al menos un método de firma para el documento | allow_type_signatures vino vacío. |
| 400 | identity_providers: Con VERIFICAMEX elige firma con identidad (VERIFICAMEX), firma simple (LOCAL) o ambas | Se mandó VERIFICAMEX con identity_providers vacío. |
| 400 | identity_providers: El proveedor de identidad … no es válido | Un valor distinto de VERIFICAMEX o LOCAL. |
| 400 | signature: El firmante ya firmó; sus métodos de firma ya no se pueden modificar | Ese firmante ya firmó. |
| 400 | signature: El firmante rechazó el documento; sus métodos de firma ya no se pueden modificar | Ese firmante rechazó el documento. |
| 400 | El usuario no tiene permiso | Tu usuario es invitado en la carpeta de trabajo del documento. |
| 400 | El documento no fue encontrado | El uuid no existe o tu usuario no pertenece a la carpeta de trabajo del documento. |
| 400 | No se encontraron firmantes sin firmar | El signatureId no pertenece a ese documento. |
| 400 | — | Un método en minúsculas o que no existe (por ejemplo efirma). |
| 401 | — | Falta la X-Api-Key o no es válida. |