# Crear plantilla DOCX

Las plantillas DOCX en ZapSign permiten la automatización de documentos con campos dinámicos, facilitando la generación de contratos, acuerdos y otros documentos recurrentes. Crear documentos a partir de una plantilla es útil para varios casos de uso como:&#x20;

* Enviar un documento al firmante para que complete un formulario y con esa información crear el documento. Por ejemplo: solicitud de póliza de seguro, consentimiento informado, inscripciones a eventos, entre otros.&#x20;
* Enviar el documento al firmante con la información parcialmente llena para que complete el formulario y los campos faltantes. El documento se creará con los campos dinámicos y el firmante continuará con el proceso de firma. Por ejemplo: apertura de cuentas bancarias, solicitud de préstamo.&#x20;
* Llenar todos los campos dinámicos para crear el documento final y el firmante sólo debe firmar el documento. Por ejemplo: contrato laboral, pagaré, contrato de arriendo.

### Creación del documento en Word (DOCX)

Antes de utilizar el endpoint para crear una plantilla en ZapSign, es necesario preparar el archivo DOCX con los campos dinámicos que se reemplazarán con información específica en cada generación de documento. Para ello, sigue estos pasos:

1. **Crear el documento base**
   * Utiliza Microsoft Word, Google Docs (exportando a DOCX) o cualquier editor compatible con el formato DOCX.
   * Redacta el contenido del documento asegurándote de estructurarlo correctamente.
2. **Definir los campos dinámicos**
   * Los campos dinámicos se representan con llaves dobles `{{campo}}` dentro del documento.
   * Ejemplo: `{{nombre}}`, `{{fecha}}`, `{{email}}`.
3. **Evitar imágenes y tablas**
   1. Te recomendamos evitar el uso de imágenes y tablas en el documento DOCX, porque puede interferir con el correcto uso de la funcionalidad.
4. **Guardar y exportar**
   * Guarda el archivo en formato `.docx`.
   * Verifica que los campos dinámicos estén correctamente escritos y ubicados.

Una vez que el documento DOCX esté preparado, se podrá utilizar el endpoint correspondiente para subir la plantilla a ZapSign y comenzar a generar documentos de manera automatizada.

<figure><img src="https://1265384129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5FrVBe47d9qwlLisqx07%2Fuploads%2Fo9j1WQZVqGBTHC9VkJkU%2Fejemplo%20plantilla%20docs.PNG?alt=media&#x26;token=78825a12-ef75-46a5-85b8-be437e0fc17d" alt=""><figcaption></figcaption></figure>

### Crear plantilla DOCX&#x20;

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

#### 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="184">Nombre</th><th width="161">Tipo</th><th>Descripción</th></tr></thead><tbody><tr><td>name</td><td>string</td><td>Título de la plantilla máximo 255 caracteres. </td></tr><tr><td>docx_url</td><td>string</td><td>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>Documento convertido a cadena de base64.</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>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 firme un documento generado a partir de esta plantilla. Es un array de correos electrónicos.</td></tr><tr><td>first_signer</td><td>Objeto</td><td>Configuración del firmante del documento. </td></tr><tr><td>folder_token</td><td>string</td><td>Si se proporciona, este campo tendrá prioridad sobre folder_path. Define el directorio basado en el token de la carpeta, que se puede obtener accediendo a:<br>https://zapsign.com.br/conta/modelos?pasta=&#x3C;folder_token><br>Si aún no conoces el token, navega hasta la carpeta deseada a partir de:<br>https://zapsign.com.br/conta/modelos<br>y copia el valor del parámetro pasta en la URL después de abrir la carpeta.</td></tr><tr><td>folder_path</td><td>string</td><td>Especifica la ruta de la carpeta dentro de ZapSign donde se guardará el modelo. Si las carpetas no existen, se crearán automáticamente.<br>Requisitos:<br>folder_path puede tener hasta 255 caracteres<br>Cada carpeta puede tener hasta 50 caracteres<br>Hay un límite de 5 niveles de carpetas<br>Ejemplo: /api/ o /carpeta1/carpeta2/carpeta3/<br>Valor predeterminado: / (sin carpeta)</td></tr><tr><td>redirect_link</td><td>string</td><td><p>Permite configurar un botón que se muestra al final de la firma para redirigir al firmante a una URL específica, como una página de agradecimiento o cualquier otra página de su sitio web.</p><p>Ejemplo: https://zapsign.com.br/</p></td></tr></tbody></table>

### Configurando el firmante

Estos campos permiten ajustar la experiencia de firma cómo el método de autenticación.&#x20;

{% hint style="info" %}
Los datos del firmante (nombre, correo electrónico) se definen al [crear el documento a partir de una plantilla](https://docs.zapsign.com.br/espanol/documentos/criar-documento-via-modelo)
{% endhint %}

**first\_signer**

* **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. Default **false**
* **blank\_phone** (boolean): Si 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. Default **false**
* **qualification** (string): Rol del firmante que se mostrará en el informe de firma. Por ejemplo "Testigo" se mostrará como "Firmo como Testigo". Por defecto "".
* **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) Default "assinaturaTela"

| 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 |

* **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 identidad 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.</td><td>CO, BR, MX, CL, PE</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>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>

### Solicitud

```javascript
{
    "name": "Nombre de la plantilla",
    "docx_url": "https://zapsign.s3.amazonaws.com/dev/2025/1/docs/1b1e8e16-b9ce-45f4-8dc8-c0320af371a5/29812f55-eb17-4182-b65e-09e895a861ad.docx",
    "lang": "es",
    "observers": [
        "email@email.com"
    ],
    "first_signer": {
        "blank_email": false,
        "blank_phone": false,
        "auth_mode": "assinaturaTela",
        "require_selfie_photo": false,
        "require_document_photo": false,
        "selfie_validation_type": "",
        "qualification": "Representante Legal"
    }
}
```

### Respuesta <a href="#respuesta" id="respuesta"></a>

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

```json
{
    "token": "272xxxd4-ecda-47xx2-be7e-59e2beb752xx",
    "template_type": "docx",
    "name": "Nombre de la plantilla",
    "active": true,
    "template_file": "https://zapsign.s3.amazonaws.com/dev/2025/1/api/45f39edb-c78d-42e4-a450-22cd7c62d656.docx?AWSAccessKeyId=AKIASUFZJ7JCTI2ZRGWX&Signature=v8haa5obmuOzV88e3naQDXnPVr8%3D&Expires=1738258954",
    "created_at": "2025-01-30T16:42:34.703412Z",
    "last_update_at": "2025-01-30T16:42:34.741300Z",
    "redirect_link": "",
    "folder_path": "/",
    "lang": "es",
    "signers": [
        {
            "name": "Firmante 1",
            "auth_mode": "assinaturaTela",
            "email": "",
            "phone_country": "57",
            "phone_number": "",
            "lock_name": true,
            "lock_phone": false,
            "lock_email": false,
            "hide_phone": false,
            "blank_phone": false,
            "hide_email": false,
            "blank_email": true,
            "require_selfie_photo": false,
            "require_document_photo": false,
            "selfie_validation_type": "none",
            "qualification": "Representante Legal"
        }
    ],
    "inputs": [
        {
            "variable": "{nombre}}",
            "input_type": "input",
            "label": "nombre",
            "help_text": "",
            "options": "",
            "required": true,
            "order": 1
        },
        {
            "variable": "{{email}}",
            "input_type": "input",
            "label": "email",
            "help_text": "",
            "options": "",
            "required": true,
            "order": 2
        },
        {
            "variable": "{{numero documento}}",
            "input_type": "input",
            "label": "numero documento",
            "help_text": "",
            "options": "",
            "required": true,
            "order": 3
        },
        {
            "variable": "{{direccion}}",
            "input_type": "input",
            "label": "direccion",
            "help_text": "",
            "options": "",
            "required": true,
            "order": 4
        }
    ],
    "extra_templates": [],
    "notify_extra_emails": "email@email.com",
    "custom_intro": "",
    "youtube_video_code": ""
}
```

### Próximos pasos

Si el firmante va a completar los campos dinámicos en el formulario durante la firma, debes configurar el formulario con el endpoint ["Configuración formulario plantilla"](https://docs.zapsign.com.br/espanol/plantillas/create-template-docx/update-form)

{% hint style="success" %}
Para crear documentos a partir de ésta plantilla ve a la sección ["Crear documento via plantilla" ](https://docs.zapsign.com.br/espanol/documentos/criar-documento-via-modelo)
{% endhint %}

### Sobre base64 <a href="#sobre-base64" id="sobre-base64"></a>

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 DOCX 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\_docx* solo con la conversión Base64 del archivo. No incluyas `data:application/pdf;base64,` en tu parámetro.
{% endhint %}
