# Crear documento via Upload

## Crear documento via Upload

<mark style="color:green;">`POST`</mark> `https://api.zapsign.com.br/api/v1/docs/`

Este endpoint te permite crear un documento para firma a partir de un archivo PDF o DOCX. Es recomendado cuando ya tiene el archivo final, y sólo debe configurarse el documento y firmantes. Para usarlo, deberás enviar los datos en formato JSON y también recibirás la respuesta en el mismo formato.

{% hint style="info" %}
Consejo: para enviar varios documentos en un sobre para que el firmante los firme al mismo tiempo, debes crear el documento primero con este endpoint y después adicionar los otros documentos con el endpoint [Adicionar documento extra (sobre)](https://docs.zapsign.com.br/espanol/documentos/adicionar-anexo-documento-extra)
{% endhint %}

#### Encabezado

<table><thead><tr><th width="175">Nombre</th><th width="103">Tipo</th><th>Descripción</th></tr></thead><tbody><tr><td>Authorization<mark style="color:red;">*</mark></td><td>string</td><td>API token prefijo con la palabra "Bearer". Ex: Bearer c7f35c84-7893-4087-b4fb-d1f06c23</td></tr></tbody></table>

#### Request Body

<table><thead><tr><th width="256.20001220703125">Nombre</th><th width="97.99993896484375">Tipo</th><th>Descripción</th></tr></thead><tbody><tr><td>name</td><td>string</td><td>Título del documento máximo 255 caracteres.</td></tr><tr><td>url_pdf</td><td>string</td><td>Define el archivo PDF a firmar. Debe ser una URL pública y el tamaño del documento máximo 10Mb.</td></tr><tr><td>base64_pdf</td><td>string</td><td><strong>Alternativa a url_pdf:</strong> Documento convertido a cadena de base64.</td></tr><tr><td>url_docx</td><td>string</td><td><strong>Alternativa a url_pdf:</strong> Debe ser una URL pública y el tamaño del documento máximo 10Mb.</td></tr><tr><td>base64_docx</td><td>string</td><td><strong>Alternativa a url_docx:</strong> Documento convertido a cadena de base64.</td></tr><tr><td>markdown_text</td><td>string</td><td><strong>Alternativa a url_pdf:</strong> Permite enviar un texto en Markdown para la creación del documento, facilitando la integración con IA y automatizaciones. Como ejemplo, consulta <a href="https://github.com/renatohr/zapsign-agent-openai">ZapSign Agent OpenAI</a>, que demuestra cómo los agentes de IA pueden utilizar esta funcionalidad.</td></tr><tr><td>signers [name]</td><td>Array&#x3C;Signe></td><td>El campo 'signers' representa las personas que van a firmar el documento. Más adelante se detalle cómo configurar cada firmante. Es un arreglo del objeto Signer.</td></tr><tr><td>lang</td><td>string</td><td><p>Idioma del documento Posibles valores: "pt-br" (Portugues), "es" (Español), "en" (Inglés), "fr" (Francés). </p><p>Valor por defecto: "pt-br"</p></td></tr><tr><td>disable_signer_emails </td><td>boolean</td><td>Para deshabilitar el envio de correos a los firmantes, este parametro debe ser true. Valor por defecto: false</td></tr><tr><td>brand_logo</td><td>string</td><td><p>Para personalizar la experiencia de firma y los correos enviados por ZapSign, envia el logo en una URL pública. </p><p>Valor por defecto: ""</p></td></tr><tr><td>brand_primary_color</td><td>string</td><td>Para personalizar la experiencia de firma y los correos enviados por ZapSign, envia el color de los botónes en este parámetro en formato rgb orhexadecimal. Ej: "#0011ee". Valor por defecto: ""</td></tr><tr><td>brand_name </td><td>string</td><td>Para personalizar el remitente de los correos, envia el nombre de tu marca en este parámetro. Por ejemplo, si escribes "Empresa ABC", el firmante recibirá el correo "Empresa ABC via ZapSign". Máximo de 100 carácteres. Valor por defecto: ""</td></tr><tr><td>external_id</td><td>string</td><td><p>Identificar del documento en tu aplicación. </p><p>Valor por defecto: ""</p></td></tr><tr><td>folder_path </td><td>string</td><td><p>Especifica la ruta de la carpeta dentro de ZapSign donde se guardará el documento. Si las carpetas no existen, se crearán automáticamente.</p><p>Ej.: "/api/" o "/folder1/folder2/folder3/". </p><p>Valor por defecto: "/" (sin folder).</p></td></tr><tr><td>created_by</td><td>string</td><td><p>Correo electrónico del usuario que se definirá como creador del documento, con fines organizativos internos. Si el correo no existe o no es un usuario de tu cuenta, este parámetro se ignorará.</p><p>Valor por defecto: "" (el dueño del documento será el propietario de la cuenta).</p></td></tr><tr><td>date_limit_to_sign</td><td>DateTime</td><td><p>Fecha límite para la firma del documento. Después de esta fecha, el firmante no podrá acceder al link de firma.</p><p>(Formatos: YYYY-MM-DD, YYYY-MM-DDTH:m:s.ssssssZ)</p></td></tr><tr><td>signature_order_active </td><td>boolean</td><td><p>Si se establece en <strong>true</strong>, se enviará el link de firma en orden a los firmantes. </p><p>Valor por defecto: false</p></td></tr><tr><td>observers </td><td>array&#x3C;string></td><td>Representa a los observadores del documento (hasta 20 personas), es decir, direcciones de correo electrónico que serán notificadas cuando se complete el flujo de firma. Es un array de correos electrónicos.</td></tr><tr><td>reminder_every_n_days</td><td>integer</td><td><p>Intervalo de días entre recordatorios que se enviarán a los firmantes, mientras no hayan firmado el documento. El máximo son 6 intentos de recordatorio.</p><p><strong>Obs</strong>: Este campo solo aplica si send_automatic_whatsapp o send_automatic_email están activados. Ejemplo: Si se establece en 8, se enviará un recordatorio cada 7 días.</p></td></tr><tr><td>allow_refuse_signature</td><td>boolean</td><td><p>Si se establece en <strong>true</strong>, los firmantes tendrán la opción de rechazar la firma.</p><p>Valor por defecto: false.</p></td></tr><tr><td>disable_signers_get_original_file</td><td>boolean</td><td><p>Si se establece en <strong>true</strong>, los firmantes no podrán descargar el documento original.</p><p>Valor por defecto: false.</p></td></tr><tr><td>Metadata</td><td>Array</td><td>Metadatos personalizados enviados durante la creación del documento, en formato de pares <code>key</code> y <code>value</code>. Esta información solo aparece en los webhooks de creación, firma, rechazo y eliminación.</td></tr><tr><td>folder_token</td><td>string</td><td><p>Si se proporciona, este campo tendrá prioridad sobre <code>folder_path</code>. Define el directorio basado en el <strong>token de la carpeta</strong>, que se puede obtener accediendo a:<br><code>https://app.zapsign.com.br/conta/documentos?pasta=&#x3C;folder_token></code></p><p>Si aún no conoces el token, navega hasta la carpeta deseada a partir de:<br><code>https://app.zapsign.com.br/conta/documentos</code><br>y copia el valor del parámetro <code>pasta</code> en la URL después de abrir la carpeta.</p></td></tr><tr><td>has_simplified_signature</td><td>boolean</td><td>Si es verdadero, activa la firma simplificada para todos los firmantes en el lugar indicado por el parámetro <code>simplified_signature_position</code>.</td></tr><tr><td>simplified_signature_position</td><td>string</td><td><p>Define dónde insertar el campo de firma simplificada. Valores aceptados:</p><p></p><p>"left<strong>":</strong> la inserta en el lateral izquierdo de las páginas.</p><p></p><p>"bottom"<strong>:</strong> la inserta en el pie de página.</p><p></p><p>"right"<strong>:</strong> la inserta en el lateral derecho de las páginas.</p></td></tr><tr><td>signature_placement</td><td>string</td><td><p>Permite posicionar la firma en el documento utilizando un texto ancla (sin necesidad de coordenadas x, y). Configure signature_placement: "&#x3C;&#x3C;{identificador_de_la_firma}>>" y la firma se ubicará donde se encuentre ese texto. Si el texto aparece más de una vez, la firma se posicionará en todas las ubicaciones.</p><p></p><p><strong>Nota</strong>: el uso de <mark style="color:$danger;"><strong>&#x3C;&#x3C; >></strong></mark> es altamente recomendado para evitar conflictos con el texto del documento, pero no es obligatorio (ej.: "&#x3C;>"). Default: "".</p><p>Si no desea que el texto ancla sea visible en el documento final, basta con definir el color del texto ancla igual al color de fondo del documento.</p></td></tr><tr><td>rubrica_placement</td><td>string</td><td><p>Permite posicionar la rúbrica en el documento utilizando un texto ancla (sin necesidad de coordenadas x, y). Configure rubrica_placement: "&#x3C;&#x3C;{identificador_de_la_rubrica}>>" y la rúbrica se ubicará donde se encuentre ese texto. Si el texto aparece más de una vez, la rúbrica se posicionará en todas las ubicaciones.</p><p></p><p><strong>Nota</strong>: el uso de <mark style="color:$danger;"><strong>&#x3C;&#x3C; >></strong></mark> es altamente recomendado para evitar conflictos con el texto del documento, pero no es obligatorio (ej.: "&#x3C;>"). Default: "".</p><p>Si no desea que el texto ancla sea visible en el documento final, basta con definir el color del texto ancla igual al color de fondo del documento.</p></td></tr></tbody></table>

### Firma simplificada

La firma simplificada reemplaza el dibujo de la firma por un bloque de texto con los datos del(los) firmante(s). Este bloque se inserta automáticamente y suele aparecer en el margen lateral de la página. Parámetros aceptados:

`has_simplified_signature` (boolean): activa la firma simplificada para todos los firmantes.

* **true:** inserta el bloque de texto; no hay campo para dibujar la firma.
* **false o ausente:** ningún efecto de firma simplificada (flujo normal de firma).

`simplified_signature_position` (string): define la posición del bloque de texto.

* **"bottom":** inserta la firma simplificada en el pie de página.
* **"left":** inserta la firma simplificada en el lateral izquierdo de las páginas.
* **"right":** inserta la firma simplificada en el lateral derecho de las páginas.

### Configuración de los firmantes

**Document** - JSON root:

* **Signers -** para cada firmante define los siguientes parámetros:

  * **auth\_mode (string):** Elige el método de autenticación para el firmante. Esto adiciona más seguridad al documento firmado, para más información sobre los métodos [haz clic aqui.](https://clients.zapsign.com.br/es/help/creaci%C3%B3n-de-documentos#autenticaci%C3%B3nes)

  | auth\_mode                     | Descripción                                                                   | Costo adicional      |
  | ------------------------------ | ----------------------------------------------------------------------------- | -------------------- |
  | "assinaturaTela"               | Firma en pantalla                                                             | Gratis               |
  | "tokenEmail"                   | Validación del correo con un código enviado por correo                        | Gratis               |
  | "assinaturaTela-tokenEmail"    | Firma en pantalla y validación del correo con un código enviado por correo    | Gratis               |
  | "tokenSms"                     | Validación del celular con un código enviado por SMS                          | Gratis               |
  | "assinaturaTela-tokenSms"      | Firma en pantalla y validación del celular con un código enviado por SMS      | Gratis               |
  | "tokenWhatsapp"                | Validación del celular con un código enviado por WhatsApp                     | 5 credis = USD$0.1   |
  | "assinaturaTela-tokenWhatsapp" | Firma en pantalla y validación del celular con un código enviado por WhatsApp | 5 creditos = USD$0.1 |

  \
  Nota: para comprar créditos ve a tu cuenta de ZapSign a la sección de [Ajustes > Planes > Creditos](https://app.zapsign.co/conta/configuracoes/plans?tab=credits). Para un volumen superior [contacta al equipo de ventas](https://zapsign.co/es/hablar-con-ventas) para una solución personalizada.

  * **name (string):** El nombre del firmante. Obligatorio.

  * **email (string):** El correo electrónico del firmante. Si el firmante no tiene correo electrónico, debes definir el parámetro `blank_email` = true.

  * **phone\_country (string):** El código de país del teléfono del firmante. Por defecto "", pero se puede definir.

  * **phone\_number (string):** El número de teléfono del firmante. Ejemplo: "11998989222".&#x20;

  * **signature\_placement** (string): Permite posicionar la firma en el documento usando un texto ancla (sin necesidad de coordenadas x, y). Configure signature\_placement: "<<{identificador\_de\_firma}>>" y la firma será posicionada donde encuentre ese texto. Si el texto aparece más de una vez, la firma será posicionada en todas las ubicaciones. Nota: el uso de << >> es altamente recomendado para evitar conflictos con el texto, pero no es obligatorio. Ej: "<\<signer1>>". Default: "". Si no desea que el texto ancla sea visible en el documento final, basta con definir el color del texto ancla igual al color de fondo del documento.

  * **rubrica\_placement** (string): Permite posicionar la rúbrica en el documento usando un texto ancla (sin necesidad de coordenadas x, y). Configure rubrica\_placement: "<<{identificador\_de\_rubrica}>>" y la rúbrica será posicionada donde encuentre ese texto. Si el texto aparece más de una vez, la rúbrica será posicionada en todas las ubicaciones. Nota: el uso de << >> es altamente recomendado para evitar conflictos con el texto, pero no es obligatorio. Ej: "<\<signer1Rubrica>>". Default: "". Si no desea que el texto ancla sea visible en el documento final, basta con definir el color del texto ancla igual al color de fondo del documento.

  * **require\_document** (booleano): Si es true, se requerirá que el firmante proporcione su información de identificación (país, tipo de documento y número de documento). Esta información se incluirá en el informe de firma. Valor predeterminado: false.

  * **require\_document\_data {objeto}:** Si se definen el país, tipo de documento y número de documento, el firmante no podrá modificar esta información durante el proceso de firma. Si solo se definen el país y el tipo de documento, el firmante deberá ingresar el número
    * **document\_country** (string). Posibles valores: "br" (Brazil), "co" (Colombia), "mx" (Mexico), "us" (United Stated), "ar" (Argentina), "pe" (Peru), "cl" (Chile), "other" (Other country).
    * **document\_type** (string). Posibles valores: "national\_id", "foreign\_id", "driver\_license", "ppt".
    * **document\_number** (string): Por defecto: "".

  * **lock\_email (boolean):** Si se establece en true, el firmante no podrá cambiar su correo electrónico durante el proceso de firma. Por defecto es false.

  * **blank\_email** **(boolean):** Si se establece en true, no se solicitará el correo electrónico del firmante y no se incluirá en el informe de la firma. Es obligatorio tener el correo O el número de teléfono del firmante.

  * **hide\_email** **(boolean):** Si se establece en true, el correo electrónico del firmante no se mostrará en el informe de firmas. Por defecto es false.

  * **lock\_phone (boolean):** Si se establece en true, el firmante no podrá cambiar su celular electrónico durante el proceso de firma. Por defecto es false.

  * **blank\_phone** **(boolean):** YSi se establece en true, no se solicitará el celular del firmante y no se incluirá en el informe de la firma. Es obligatorio tener el correo O el número de teléfono del firmante.

  * **hide\_phone** **(boolean):** Si se establece en true, el celular del firmante no se mostrará en el informe de firmas. Por defecto es false.

  * **lock\_name (boolean):** Si se establece en true, el firmante no podrá cambiar su nombre electrónico durante el proceso de firma. Por defecto es false.

  * **send\_automatic\_email (boolean):** Si se establece en true, ZapSign enviará automáticamente un correo al firmante con el enlace para firmar el documento. Por defecto es **false**

  * **send\_automatic\_whatsapp** (boolean): Si se establece en true, ZapSign enviará automáticamente un mensaje por WhatsApp al firmante con el enlace para firmar el documento. Recuerda que se deben tener créditos para enviar por WhatsApp. Por defecto es **false**

  * **send\_automatic\_whatsapp\_signed\_file** (boolean): Si se establece en **true**, ZapSign enviará un mensaje por WhatsApp al firmante con el enlace al documento firmado. Recuerda que se deben tener créditos para enviar por WhatsApp. Por defecto es **false**

  * **order\_group (integer):** Si "signature\_order\_active" es **true** en el documento, este campo controla el orden de firma. Ejemplo: Si se establece en 1, este firmante será el primero en firmar; si es 2, será el segundo, y así sucesivamente. Conoce más sobre [grupo de firmantes aqui](#grupo-de-firmantes)

  * **custom\_message (string):** Si **send\_automatic\_email** es **true** o **send\_automatic\_whatsapp** es **true**, puedes personalizar el mensaje del correo enviado al firmante. Ejemplo: "Hola \[Nombre], \n Este es tu contrato de empleo. \n Saludos, Equipo XPTO". El símbolo \n sirve para saltos de línea.

  *

  **require\_selfie\_photo (boolean):** Si se establece en true, se pedirá al firmante que tome una selfie durante el proceso de firma (no hay validación de la foto). Por defecto es false.

  * **require\_document\_photo (boolean):** Si se establece en true, se pedirá al firmante que tome una foto del frente y anverso del documento de identidad durante el proceso de firma (no hay validación de la foto). Por defecto es false.
  * **selfie\_validation\_type (string):** Métodos biométricos avanzados para validar la selfie del firmante. Para conocer más sobre cada método [haz clic aqui.](https://zapsign.co/es/product/signer-identity)

<table><thead><tr><th width="176">selfie_validation_type</th><th width="292">Descripción</th><th width="145">Países</th><th>Precio</th></tr></thead><tbody><tr><td>liveness-document-match</td><td>Reconocimiento facial que valida que el firmante esté presente y sea el mismo que la foto del documento suministrada. Si ya tienes el documento del firmante, lee la sección Reconocimiento facial </td><td>Global</td><td>24 créditos = $0.48 USD</td></tr><tr><td>identity-verification</td><td>Validación del documento y biometría facial, asegurando que el firmante esté presente, que el documento sea real y que esté registrado en bases de datos gubernamentales.</td><td>AR, CO, MX, CL, PE</td><td>55 créditos = $1.0 USD</td></tr><tr><td>identity-verification-global</td><td>Validación del documento y biometría facial, garantizando que el firmante esté presente, que el documento sea auténtico (mediante modelos de detección de fraude) y que el nombre extraído del documento coincida con el del firmante. <strong>Nota</strong>: no incluye validación en bases de datos gubernamentales</td><td>Global</td><td>50 créditos = $0.9 USD</td></tr><tr><td>liveness-NXCD</td><td>Valida que la persona está presente en el momento de la firma con un vídeo pasivo (liveness)</td><td>Global</td><td>15 créditos = $0.3USD</td></tr></tbody></table>

Tenemos disponible la opción del método de "Validación de identidad" para otros países, [contacta al equipo comercial](https://zapsign.co/es/hablar-con-ventas) para mayor información.

* **qualification (string):** Rol del firmante que se mostrará en el informe de firma. Por ejemplo "Testigo" se mostrará como "Firmo como Testigo". Por defecto  "".
* **external\_id (string):** ID del firmante en tu aplicación. Por defecto está "".
* **redirect\_link (string):** Enlace al que se redirige al firmante después de firmar el documento. Después de firmar se mostrará un botón de "Continuar". Recuerda incluir http\:// o https\:// al inicio del enlace. Por defecto está "".

### Solicitud

#### Create document via PDF

{% embed url="<https://www.postman.com/zapsign/workspace/zapsign-workspace/request/27495556-97395ac6-ced0-41bd-99eb-1f94c05625de?ctx=documentation>" %}
URL for the Create doc from upload PDF endpoint
{% endembed %}

#### Create document via DOCX

{% embed url="<https://www.postman.com/zapsign/workspace/zapsign-workspace/request/27495556-95777596-18ed-415a-ad5f-2b1ac98b496b?ctx=documentation>" %}
URL for the Create doc from upload DOCX endpoint
{% endembed %}

<details>

<summary>Delphi request example</summary>

```javascript
var
  json : string;
  ArraySigner : TJSONArray;
  ObjDoc, ObjSigner : TJSONObject;
begin
   ObjDoc := TJSONObject.Create;
   ObjDoc.AddPair('name', 'Contrato de Locação');
   ObjDoc.AddPair('base64_pdf', 'ASFASDFKÇLKÇGÇO#OP%$%#WERP#@&*OSADFJF...');  // Arquivo base64

   ArraySigner := TJSONArray.Create;

   ObjSigner := TJSONObject.Create;
   ObjSigner.AddPair('name', 'João da Silva');
   ObjSigner.AddPair('email', 'joaosilva@gmail.com.br');
   ObjSigner.AddPair('phone_country', '55');
   ObjSigner.AddPair('phone_number', '11888121111');
   // Opcional caso queira impedir alteração 
   ObjSigner.AddPair('lock_name', TJSONTrue.Create);
   ObjSigner.AddPair('lock_email', TJSONTrue.Create);
   ObjSigner.AddPair('lock_phone', TJSONTrue.Create);

   ArraySigner.AddElement(ObjSigner);

   ObjDoc.AddPair('signers', ArraySigner);
   json := ObjDoc.ToString;

   ObjDoc.DisposeOf;

   RESTClient.BaseURL := 'https://api.zapsign.com.br/api/v1/docs/?api_token=...seu token..';
   Request_remete.ClearBody;
   Request_remete.Body.Add(json,ContentTypeFromString('application/json'));
   Request_remete.Execute;
end;
```

</details>

### Respuesta

Después de una solicitud exitosa, recibirás una respuesta similar a esta:

{% hint style="warning" %}
**Advertencia**: los enlaces original\_file y signed\_file son temporales y caducan en 60 minutos. Si tu sistema necesita guardar esos enlaces, se recomienda almacenarlos en tu propio CDN o llamar al endpoint de[ Detalle del documento](https://docs.zapsign.com.br/espanol/documentos/detalhar-documento) cada vez que tu usuario necesite una URL válida que caduque en más de 60 minutos.
{% endhint %}

```javascript
{
    "open_id": 5,
    "token": "eb9c367a-e62f-4992-8360-b0219deaeecc",
    "status": "pending",
    "name": "John's contract",
    "original_file": "https://zapsign.s3.amazonaws.com/pdf/62xxxxx-d8fc-4392-8575-f3c46c3cfc7a/df6bac91-2766-4182-8c8b-ded5287e4c0f.pdf",
    "signed_file": null,
    "created_at": "2020-04-16T03:33:46.241747Z",
    "last_update_at": "2020-04-16T03:33:46.241775Z",
    "signers": [
        {
            "token": "921c115d-4a6e-445d-bdca-03fadedbbc0b",
            "sign_url": "https://app.zapsign.co/verificar/921c115d-4a6e-445d-bdca-03fadedbbc0b",
            "status": "new",
            "name": "John Doe",
            "email": "",
            "phone_country": "",
            "phone_number": "",
            "times_viewed": 0,
            "last_view_at": null,
            "signed_at": null,
            "resend_attempts": null
        },
        {
            "token": "07fb0a0a-4b7d-49a5-bd7b-4958265c4e46",
            "sign_url": "https://app.zapsign.co/verificar/07fb0a0a-4b7d-49a5-bd7b-4958265c4e46",
            "status": "new",
            "name": "Grumpy Jones",
            "email": "",
            "phone_country": "",
            "phone_number": "",
            "times_viewed": 0,
            "last_view_at": null,
            "signed_at": null,
            "resend_attempts": null
        }
    ]
}
```

### Link de firma

En la respuesta de la solicitud, cada firmante va a tener un singer\_url que es el link para que firmen el documento. Si no enviaste el documento por los canales de ZapSign (`send_automatic_email` o `send_automatic_whatsapp`) debes enviar el enlace a los firmantes.

### Reconocimiento facial

El método de autenticación válida la presencia física de la persona al momento de la firma y que el rostro de la persona corresponda al documento presentado.&#x20;

Si la empresa ya tiene la foto del documento de identidad del firmante, ésta puede ser enviada en la requisición para que el firmante sólo grabe la foto del rostro y se compare con el documento de identidad que tiene la empresa. Para ello se debe enviar el parametro:

* **document\_photo\_url** (string): URL pública del frente de la foto del documento de identidad. Ésta foto será comparada con el video que grabe el firmante durante la firma del documento.&#x20;
* **document\_verse\_photo\_url** (string): URL pública de la parte de atrás de la de la foto del documento de identidad. Ambas fotos y una captura del video, serán registradas en el informe de firmas.&#x20;

{% hint style="warning" %}
**Importante**: este método no valida la autenticidad del documento de identidad, sino únicamente la correspondencia entre la persona y el documento presentado. Para un proceso mayor de seguridad consulta el [método de autenticación "Validación de Identidad"](https://clients.zapsign.com.br/es/help/qu%C3%A9-es-la-validaci%C3%B3n-de-identidad-y-por-qu%C3%A9-es-importante)
{% endhint %}

Conoce más sobre reconocimiento facial haciendo [clic aqui](https://clients.zapsign.com.br/es/help/metodo-reconocimiento-facial)

### Grupo de firmantes

El parámetro `order_group` permite organizar a los firmantes de un documento en grupos específicos, definiendo un orden estructurado de firma. Con esta funcionalidad, es posible establecer que todos los firmantes del Grupo A firmen primero y, solo después de que finalicen, los firmantes del Grupo B puedan hacerlo, y así sucesivamente. Esto es especialmente útil en procesos donde el flujo de firma debe seguir una jerarquía o secuencia definida.

**¿Cómo funciona?**

El parámetro a nivel de documento `signature_order_active` debe estar definido como true y en firmante definir los grupos con el parámetro `order_group` . Por ejemplo: primero debe firmar Maria y Luisa y después Pedro y Pablo. En el array de Maria y Luisa el parámetro de order\_group debe ser 1, y el de Pedro y Pablo debe ser 2.

**Edición de grupos**

Después de crear los grupos y definir los firmantes, no será posible editar los firmantes dentro de cada grupo. Asegúrate de revisar cuidadosamente antes de finalizar la configuración. Se puede eliminar la configuración de grupo de firmantes para que no haya un orden específico de firma, [más detalle aqui](https://docs.zapsign.com.br/espanol/firmantes/eliminar-grupos-de-firmantes).

**Requisitos para usar esta funcionalidad**

Para que esta funcionalidad funcione correctamente, es necesario activar la opción **“Bloquear firma fuera del orden definida para firmantes”**.\
Esta opción está disponible en [**Ajustes > Organización > Preferencias**](https://app.zapsign.co/conta/configuracoes?tab=preferences).\
Si esta configuración no está habilitada, los firmantes podrán firmar sin respetar el orden establecido por los grupos.

### Sobre base64

Base64 es una forma sencilla de convertir archivos en texto. Si quieres conocer más detalles sobre qué es Base64, puedes consultar su [definición completa aquí.](https://en.wikipedia.org/wiki/Base64) Al convertir un archivo a Base64 y enviarlo como texto en el cuerpo de la solicitud, es más fácil de manejar que, por ejemplo, el formato multipart/form-data.

Para probar la API, puedes convertir tu archivo PDF a Base64 manualmente a través de varios sitios web, [como este](https://base64.guru/converter/encode/pdf).

Cuando ya tengas la API integrada en tu sistema, busca la función correspondiente en tu lenguaje de programación para convertir archivos a Base64.

{% hint style="info" %}
**¡Atención!** Debes enviar el parámetro *base64\_pdf* solo con la conversión Base64 del archivo. No incluyas `data:application/pdf;base64,` en tu parámetro.
{% endhint %}

### ¡Habla con Gepeto!

¿Tienes alguna duda? Usa nuestra inteligencia artificial entrenada con toda la documentación de la API =)

{% embed url="<https://n8n.zapsign.com.br/webhook/fee2c476-7f23-4a4f-8928-5c7ab081ffcd/chat>" %}
