> ## Documentation Index
> Fetch the complete documentation index at: https://developers.insuranceboosters.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar plantillas PDF

> Obtén los IDs y valores de runtime de las plantillas PDF de un tablero.

Lista las plantillas PDF guardadas en un tablero. Usa esta operación antes de generar un documento; no necesitas conocer la estructura interna del campo ni descargar el diseño de la plantilla.

Necesitas el `databaseId`. Si todavía no lo tienes, consulta [Listar tableros](/tableros/listar-tableros) y usa el `id` del tablero que contiene la plantilla.

## Endpoint

```text theme={null}
GET /databases/{databaseId}/pdf-templates
```

## Parámetros de ruta

| Parámetro    | Descripción                               |
| ------------ | ----------------------------------------- |
| `databaseId` | ID del tablero que contiene la plantilla. |

## Ejemplo de solicitud

```bash theme={null}
curl "https://api.insuranceboosters.com/api/v1/databases/{databaseId}/pdf-templates" \
  -H "x-ib-api-key: TU_API_KEY"
```

## Respuesta exitosa (`200`)

```json theme={null}
{
  "templates": [
    {
      "fieldId": "<field-id>",
      "fieldName": "Generar póliza",
      "templateId": "<template-id>",
      "name": "Póliza",
      "orientation": "portrait",
      "fileNameTemplate": "poliza-{{numeroPoliza}}.pdf",
      "runtimeFields": [
        {
          "key": "observaciones",
          "label": "observaciones"
        }
      ]
    }
  ]
}
```

## Campos de respuesta

| Campo              | Descripción                                                              |
| ------------------ | ------------------------------------------------------------------------ |
| `fieldId`          | ID del campo PDF. Envíalo como `fieldId` al generar.                     |
| `fieldName`        | Nombre visible de la columna en el tablero.                              |
| `templateId`       | ID de la plantilla. Envíalo como `templateId` al generar.                |
| `name`             | Nombre visible de la plantilla. Úsalo para elegir entre varias opciones. |
| `orientation`      | Orientación del documento: `portrait` o `landscape`.                     |
| `fileNameTemplate` | Patrón configurado para el nombre del archivo. Puede no aparecer.        |
| `runtimeFields`    | Valores solicitados por la plantilla que no provienen del registro.      |

Por cada elemento de `runtimeFields`, usa `key` como propiedad dentro de `values` al [generar el PDF](/tableros/generar-pdf-registro):

```json theme={null}
{
  "fieldId": "<field-id>",
  "templateId": "<template-id>",
  "values": {
    "observaciones": "Texto capturado al generar"
  }
}
```

Si `runtimeFields` es `[]`, no necesitas enviar `values`; la plantilla puede generarse con los datos del registro.

Si `templates` es `[]`, el tablero no tiene plantillas PDF configuradas.

<Note>
  El diseño y la configuración de las plantillas se administran desde la plataforma.
</Note>

## Errores frecuentes

| HTTP  | Qué significa                                                  | Qué hacer                                                               |
| ----- | -------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `401` | API key inválida o faltante.                                   | Verifica el encabezado `x-ib-api-key`.                                  |
| `404` | El tablero no existe o no está disponible para tu integración. | Confirma `databaseId` con [Listar tableros](/tableros/listar-tableros). |
| `500` | No fue posible consultar las plantillas.                       | Reintenta; si continúa, contacta soporte.                               |


## OpenAPI

````yaml openapi/tableros-v1.yaml GET /databases/{databaseId}/pdf-templates
openapi: 3.1.0
info:
  title: Insurance Boosters API — Tableros
  version: 1.0.0
  description: API pública para administrar tableros, campos, registros, archivos y PDF.
  license:
    name: Propietaria
    url: https://insuranceboosters.com
servers:
  - url: https://api.insuranceboosters.com/api/v1
    description: Producción
security:
  - IbApiKey: []
tags:
  - name: Tableros
    description: Administración de tableros.
  - name: Campos
    description: Configuración del esquema de un tablero.
  - name: Registros
    description: Lectura y escritura de registros.
  - name: Archivos
    description: Archivos adjuntos a registros.
  - name: PDF
    description: Generación de PDF a partir de plantillas del tablero.
paths:
  /databases/{databaseId}/pdf-templates:
    parameters:
      - $ref: '#/components/parameters/DatabaseId'
    get:
      tags:
        - PDF
      summary: Listar plantillas PDF
      description: |
        Lista las plantillas creadas desde la plataforma. Usa `fieldId` y
        `templateId` para generar un documento. `runtimeFields` indica los
        valores que la plantilla necesita y que no provienen del registro.
      operationId: listDatabasePdfTemplates
      responses:
        '200':
          description: Plantillas PDF disponibles.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                  - templates
                properties:
                  templates:
                    type: array
                    items:
                      $ref: '#/components/schemas/PublicPdfTemplate'
              example:
                templates:
                  - fieldId: <field-id>
                    fieldName: Generar póliza
                    templateId: <template-id>
                    name: Póliza
                    orientation: portrait
                    fileNameTemplate: poliza-{{numeroPoliza}}.pdf
                    runtimeFields:
                      - key: observaciones
                        label: observaciones
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    DatabaseId:
      name: databaseId
      in: path
      required: true
      description: ID del tablero.
      schema:
        type: string
  schemas:
    PublicPdfTemplate:
      type: object
      additionalProperties: false
      required:
        - fieldId
        - fieldName
        - templateId
        - name
        - orientation
        - runtimeFields
      properties:
        fieldId:
          type: string
          description: Envíalo como `fieldId` al generar el PDF.
        fieldName:
          type: string
          description: Nombre visible de la columna PDF en el tablero.
        templateId:
          type: string
          description: Envíalo como `templateId` al generar el PDF.
        name:
          type: string
          description: Nombre visible de la plantilla.
        orientation:
          type: string
          enum:
            - portrait
            - landscape
        fileNameTemplate:
          type: string
          description: Patrón opcional usado para nombrar el archivo.
        runtimeFields:
          type: array
          description: Valores que solicita la plantilla y no provienen del registro.
          items:
            type: object
            additionalProperties: false
            required:
              - key
              - label
            properties:
              key:
                type: string
              label:
                type: string
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        error:
          type: string
      additionalProperties: false
  responses:
    Unauthorized:
      description: API key inválida o faltante.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Recurso no encontrado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalError:
      description: Error del servicio.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    IbApiKey:
      type: apiKey
      in: header
      name: x-ib-api-key
      description: API key de Insurance Boosters.

````