Plantillas
Lista tus plantillas de firma electrónica y consulta los roles de una plantilla concreta: el punto de partida para enviar un sobre desde la API.
Las plantillas son los documentos reutilizables que tu equipo ya ha configurado en la app, con sus campos y roles de firmante definidos. Para enviar un sobre por la API parte de una de ellas, así que los dos endpoints de lectura de aquí suelen ser las primeras llamadas tras la autenticación.
Ambos requieren el scope templates:read, y una clave solo ve las plantillas que su propietario
puede ver en la app.
Listar plantillas
Endpoint
GET https://api2.bunnydoc.com/v1/templates
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
page | integer | Número de página, desde 1. Por defecto 1. |
per_page | integer | Resultados por página, 1–100. Por defecto 25. |
search | string | Opcional. Filtra por nombre de plantilla, hasta 200 caracteres. |
Ejemplo de petición
curl "https://api2.bunnydoc.com/v1/templates?per_page=25&search=nda" \
-H "Authorization: Bearer <access_token>"GET /v1/templates?per_page=25&search=nda HTTP/1.1
Host: api2.bunnydoc.com
Authorization: Bearer <access_token>Respuesta
{
"data": [
{
"id": "018f2c3d-4e5f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Mutual NDA",
"description": "Standard two-way non-disclosure agreement",
"file_count": 1,
"role_count": 2,
"created_at": "2026-06-01T09:30:00.000Z",
"updated_at": "2026-07-10T14:12:00.000Z"
}
],
"pagination": { "page": 1, "per_page": 25, "total": 1, "total_pages": 1 }
}| Campo | Tipo | Descripción |
|---|---|---|
id | string | El id de la plantilla: pásalo a POST /v1/envelopes/from-template. |
name | string | Nombre de la plantilla. |
description | string | null | Descripción opcional. |
file_count | integer | Número de documentos de la plantilla. |
role_count | integer | Número de roles de firmante. |
created_at / updated_at | string | Marcas de tiempo ISO 8601. |
Obtener una plantilla
Devuelve una plantilla incluidos sus roles. Llama a este endpoint antes de enviar: el array
roles te indica exactamente qué nombres de rol debes proporcionar y cuáles están bloqueados.
Endpoint
GET https://api2.bunnydoc.com/v1/templates/{id}
Ejemplo de petición
curl https://api2.bunnydoc.com/v1/templates/018f2c3d-4e5f-7a8b-9c0d-1e2f3a4b5c6d \
-H "Authorization: Bearer <access_token>"GET /v1/templates/018f2c3d-4e5f-7a8b-9c0d-1e2f3a4b5c6d HTTP/1.1
Host: api2.bunnydoc.com
Authorization: Bearer <access_token>Respuesta
{
"id": "018f2c3d-4e5f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Mutual NDA",
"description": "Standard two-way non-disclosure agreement",
"file_count": 1,
"role_count": 2,
"created_at": "2026-06-01T09:30:00.000Z",
"updated_at": "2026-07-10T14:12:00.000Z",
"roles": [
{
"role": "Client",
"recipient_type": "need-to-sign",
"signing_order": 1,
"locked": false
},
{
"role": "Account manager",
"recipient_type": "need-to-sign",
"signing_order": 2,
"locked": true,
"name": "Dana Lee",
"email": "dana@yourco.com"
}
]
}| Campo de rol | Tipo | Descripción |
|---|---|---|
role | string | El nombre del rol. Proporciónalo en recipients[].role al enviar. |
recipient_type | string | Cómo participa el destinatario, p. ej. need-to-sign, receives-a-copy. |
signing_order | integer | El orden en que firma este rol. |
locked | boolean | Si es true, el nombre y el correo están fijados en la plantilla: omite este rol en tu petición de envío. |
name / email | string | null | Presentes solo en roles bloqueados: el destinatario fijo. |
Los roles bloqueados no se pueden reasignar
Un rol bloqueado ya tiene una persona asignada (o es el propio remitente de la plantilla). Enviar un
destinatario para un rol bloqueado se rechaza con unknown_signer_role. Proporciona destinatarios
solo para los roles con locked en false.
Errores
| Estado | error.code | Cuándo ocurre |
|---|---|---|
404 | template_not_found | No existe ninguna plantilla con ese id en tu empresa. |