BunnyDoc
APIAPI de signature électronique

Utilisateurs

Listez les membres de votre entreprise pour que votre intégration permette de choisir au nom de qui une enveloppe est envoyée.

GET /v1/users liste les personnes de votre entreprise. Il existe pour une raison pratique : que votre intégration puisse proposer un sélecteur « envoyer en tant que » au lieu de figer un seul expéditeur dans le code, puis transmettre l'e-mail de la personne choisie comme sender_email à l'envoi.

Nécessite le scope users:read. En lecture seule : aucun endpoint ne permet d'inviter, de modifier ou de supprimer un membre.

Endpoint

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

Paramètres de requête

ParamètreTypeDescription
pageintegerNuméro de page, à partir de 1. 1 par défaut.
per_pageintegerRésultats par page, 1–100. 25 par défaut.
searchstringOptionnel. Filtre par nom ou e-mail, jusqu'à 200 caractères.
statusstringOptionnel. L'une des valeurs pending, accepted, declined, archived. Omettez-le pour obtenir tous les statuts.

Exemple de requête

Lister les membres qui peuvent réellement envoyer
curl "https://api2.bunnydoc.com/v1/users?status=accepted&per_page=100" \
  -H "Authorization: Bearer <access_token>"

Réponse

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 }
}
ChampTypeDescription
idstringL'identifiant utilisateur. C'est la personne que sender_email résout.
emailstringSon e-mail — la valeur à transmettre comme sender_email.
first_name / surnamestringLes parties de son nom. L'une ou l'autre peut être vide.
namestringNom complet de commodité, sans espaces superflus.
rolestringRôle dans l'organisation : owner, admin ou member.
statusstringStatut d'appartenance : accepted, pending, declined ou archived.
productsstring[]Les produits avec siège que détient ce membre, p. ex. ["eSign"].

Choisir un expéditeur valide

Tout le monde dans la liste ne peut pas envoyer. Pour que sender_email se résolve, le membre doit remplir les deux conditions :

  • status = accepted — une invitation en attente ou un membre archivé n'est pas un utilisateur actif, et
  • détenir un siège eSign — vérifiez que products contient eSign.

Filtrez sur les deux avant de proposer quelqu'un dans un sélecteur :

Ne proposez que les membres qui peuvent réellement envoyer
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"));

Tout autre cas vous donne 422 sender_not_found au moment de l'envoi.

Un cas dont cette liste ne peut pas vous avertir : un membre peut avoir une appartenance accepted alors que son compte utilisateur a été désactivé. Cela n'apparaît pas ici, donc traitez un 422 sender_not_found sur un membre par ailleurs éligible comme « cette personne ne peut plus envoyer » et repliez-vous sur un autre expéditeur ou sur le propriétaire de la clé.

Envoyer au nom de quelqu'un utilise ses permissions

sender_email est une usurpation interne à l'entreprise : l'enveloppe vient de cette personne, et l'envoi est autorisé au regard de ses permissions, pas de celles du propriétaire de la clé. Il ne peut désigner qu'une personne de la même entreprise que la clé — il n'existe aucun moyen d'envoyer au nom d'une autre entreprise.

Erreurs

Statuterror.codeQuand cela se produit
403insufficient_scopeLa clé ne porte pas users:read.
403forbiddenL'accès à l'API n'est pas inclus dans l'offre actuelle de votre entreprise.
429rate_limitedPlus de 1000 requêtes en 15 minutes pour cette clé.

Étapes suivantes

Sur cette page