BunnyDoc
APIAPI de firma electrónica

Errores

Todos los errores que puede devolver la API de firma electrónica, con un código legible por máquina y estable sobre el que ramificar.

Todas las respuestas de error tienen la misma forma. Lee error.code: es un valor estable y legible por máquina. El message es para personas y puede cambiar en cualquier momento, así que nunca ramifiques según el texto del mensaje.

Forma del error
{
  "error": {
    "code": "unknown_signer_role",
    "message": "One or more recipient roles do not match this template.",
    "details": { }
  }
}

details es opcional y, cuando está presente, aporta contexto estructurado sobre el error.

Códigos de error

HTTPerror.codeSignificado
401missing_api_keyFalta la cabecera X-API-Key en la petición de token.
401invalid_api_keyLa clave es desconocida, revocada, caducada o no es de modo real.
401missing_tokenNo se envió el token Authorization: Bearer.
401invalid_tokenEl token está mal formado o caducado. Solicita uno nuevo.
401key_revokedLa clave tras este token fue revocada o rotada: sus tokens ya no funcionan.
403insufficient_scopeLa clave no incluye el scope que requiere este endpoint.
403forbiddenEl propietario de la clave carece del permiso subyacente, o el acceso a la API no está en tu plan.
403signing_links_disabledEl sobre no comparte enlaces de firma con el remitente.
402quota_exceededNo quedan solicitudes de firma por API (al enviar).
403quota_exceededSe alcanzó un límite de recursos (por ejemplo, el de contactos).
404template_not_foundNo existe ninguna plantilla con ese id en tu empresa.
404envelope_not_foundNo existe ningún sobre con ese id en tu empresa.
404webhook_not_foundNo existe ninguna suscripción de webhook con ese id en tu empresa.
422unknown_signer_roleUn rol de destinatario no coincide con la plantilla, o se proporcionó un rol bloqueado.
422sender_not_foundsender_email no es un usuario activo con asiento de firma electrónica en tu empresa.
422validation_failedEl cuerpo de la petición está mal formado o falta un campo obligatorio.
429rate_limitedDemasiadas peticiones: espera y reintenta.
5xxsend_failedEl sobre se creó pero no pudo enviarse, así que se descartó. No se entregó nada.
500internal_errorAlgo falló de nuestro lado. Se puede reintentar.

Por qué algunos errores son deliberadamente imprecisos

En el endpoint de token, "clave inexistente", "revocada", "caducada" y "no de modo real" devuelven todos el mismo cuerpo 401. Del mismo modo, una plantilla de otra empresa y una que no existe devuelven ambas 404 template_not_found. Es intencionado: un error más específico permitiría a alguien sondear qué ids o claves existen.

Cómo gestionar bien los errores

  • Ramifica según error.code, nunca según message.
  • Reintenta 5xx, 429 y errores de red con espera progresiva. No reintentes los 4xx: la petición nos llegó y fue rechazada; corrige la petición.
  • Renueva ante 401 invalid_token intercambiando tu clave por un token nuevo. Si recibes key_revoked, la clave se revocó: genera una nueva en Configuración → Claves de API.
  • Trata quota_exceeded como una señal del plan, no como un error transitorio: se resuelve cuando el periodo se reinicia o se mejora tu plan.

En esta página