# Cambiar los métodos de firma Fuente: /document-management/update-signature-methods/ Los métodos de firma (con identidad, firma simple, e.firma o FIREL) se eligen al [crear el documento](/document-management/create-document), pero puedes cambiarlos después mientras el proceso de firma no haya terminado. Hay dos niveles: - **Del documento:** aplican a todos los firmantes que no tienen métodos propios. - **De un firmante:** solo para esa persona. **Mandan sobre los del documento**, y si se los quitas, el firmante vuelve a usar los del documento. 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. *** ### Los cuatro métodos 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) | *** ### Cambiar los métodos del documento **Método:** PATCH `https://api.digitafirma.com/v1/documents/{uuid}/signature_methods` #### Path Parameters | Campo | Tipo | Descripción | | :- | :- | :- | | `uuid` | `string` | ID del documento. | #### Body (JSON) | 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** ```bash 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"] }' ``` **Respuesta Exitosa (200 OK)** Regresa el documento con la misma estructura que la respuesta de [Crear un documento](/document-management/create-document), con los métodos nuevos en `attributes.config` (aquí recortada). ```json { "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 } } } ``` **Error (400)** ```json { "errors": [ { "status": 400, "title": "Validation Error", "detail": "document: El documento ya está firmado; sus métodos de firma ya no se pueden modificar" } ] } ``` *** ### Cambiar los métodos de un firmante **Método:** PATCH `https://api.digitafirma.com/v1/documents/{uuid}/signatures/{signatureId}/signature_methods` #### Path Parameters | 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). | #### Body (JSON) | 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** ```bash 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"] }' ``` **Respuesta Exitosa (200 OK)** ```json { "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. **Error (400)** ```json { "errors": [ { "status": 400, "title": "Validation Error", "detail": "signature: El firmante ya firmó; sus métodos de firma ya no se pueden modificar" } ] } ``` > **Firmantes con la verificación de identidad en curso** > > Si un firmante ya completó la verificación de identidad y solo le falta trazar su firma, y le quitas `IDENTITY` y `SIMPLE`, ya no podrá terminar con ese método: tendrá que firmar con uno de los que le dejaste. *** ### Errores comunes | 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. |