BunnyDoc
APIAPI de firma electrónica

Usuarios

Lista los miembros de tu empresa para que tu integración permita elegir desde quién se envía un sobre.

GET /v1/users lista a las personas de tu empresa. Existe por una razón práctica: que tu integración pueda ofrecer un selector de "enviar como" en lugar de fijar un único remitente en el código, y después pasar el correo de la persona elegida como sender_email al enviar.

Requiere el scope users:read. Es de solo lectura: no hay ningún endpoint para invitar, modificar ni eliminar un miembro.

Endpoint

GET   https://api2.bunnydoc.com/v1/users

Parámetros de consulta

ParámetroTipoDescripción
pageintegerNúmero de página, desde 1. Por defecto 1.
per_pageintegerResultados por página, 1–100. Por defecto 25.
searchstringOpcional. Filtra por nombre o correo, hasta 200 caracteres.
statusstringOpcional. Uno de pending, accepted, declined, archived. Omítelo para obtener todos los estados.

Ejemplo de petición

Listar los miembros que realmente pueden enviar
curl "https://api2.bunnydoc.com/v1/users?status=accepted&per_page=100" \
  -H "Authorization: Bearer <access_token>"

Respuesta

200 OK
{
  "data": [
    {
      "id": "018f6b2c-3d4e-7f5a-8b6c-7d8e9f0a1b2c",
      "email": "dana@yourco.com",
      "first_name": "Dana",
      "surname": "Lee",
      "name": "Dana Lee",
      "role": "admin",
      "status": "accepted",
      "products": ["eSign"]
    }
  ],
  "pagination": { "page": 1, "per_page": 25, "total": 1, "total_pages": 1 }
}
CampoTipoDescripción
idstringEl id del usuario. Es la persona a la que resuelve sender_email.
emailstringSu correo: el valor que hay que pasar como sender_email.
first_name / surnamestringLas partes de su nombre. Cualquiera puede estar vacía.
namestringNombre completo de conveniencia, sin espacios sobrantes.
rolestringRol en la organización: owner, admin o member.
statusstringEstado de pertenencia: accepted, pending, declined o archived.
productsstring[]Los productos con asiento que tiene este miembro, p. ej. ["eSign"].

Elegir un remitente válido

No todos los de la lista pueden enviar. Para que sender_email resuelva, el miembro debe cumplir las dos condiciones:

  • status = accepted — una invitación pendiente o un miembro archivado no es un usuario activo, y
  • tener un asiento de eSign — comprueba que products contiene eSign.

Filtra por ambas antes de ofrecer a alguien en un selector:

Ofrece solo a los miembros que realmente pueden enviar
const res = await fetch(
  "https://api2.bunnydoc.com/v1/users?status=accepted&per_page=100",
  { headers: { Authorization: `Bearer ${token}` } },
);
const { data } = await res.json();

const senders = data.filter((u) => u.products.includes("eSign"));

Cualquier otro caso te da 422 sender_not_found en el momento del envío.

Hay un caso del que esta lista no puede avisarte: un miembro puede tener la pertenencia accepted mientras su cuenta de usuario está desactivada. Eso no se expone aquí, así que trata un 422 sender_not_found sobre un miembro que por lo demás cumple los requisitos como "esta persona ya no puede enviar" y recurre a otro remitente o al propietario de la clave.

Enviar como otra persona usa sus permisos

sender_email es una suplantación dentro de la empresa: el sobre es de esa persona, y el envío se autoriza contra sus permisos, no los del propietario de la clave. Solo puede nombrar a alguien de la misma empresa que la clave; no hay forma de enviar en nombre de otra empresa.

Errores

Estadoerror.codeCuándo ocurre
403insufficient_scopeLa clave no incluye users:read.
403forbiddenEl acceso a la API no está incluido en el plan actual de tu empresa.
429rate_limitedMás de 1000 peticiones en 15 minutos para esta clave.

Siguientes pasos

En esta página