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ètre | Type | Description |
|---|---|---|
page | integer | Numéro de page, à partir de 1. 1 par défaut. |
per_page | integer | Résultats par page, 1–100. 25 par défaut. |
search | string | Optionnel. Filtre par nom ou e-mail, jusqu'à 200 caractères. |
status | string | Optionnel. L'une des valeurs pending, accepted, declined, archived. Omettez-le pour obtenir tous les statuts. |
Exemple de requête
curl "https://api2.bunnydoc.com/v1/users?status=accepted&per_page=100" \
-H "Authorization: Bearer <access_token>"GET /v1/users?status=accepted&per_page=100 HTTP/1.1
Host: api2.bunnydoc.com
Authorization: Bearer <access_token>Réponse
{
"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 }
}| Champ | Type | Description |
|---|---|---|
id | string | L'identifiant utilisateur. C'est la personne que sender_email résout. |
email | string | Son e-mail — la valeur à transmettre comme sender_email. |
first_name / surname | string | Les parties de son nom. L'une ou l'autre peut être vide. |
name | string | Nom complet de commodité, sans espaces superflus. |
role | string | Rôle dans l'organisation : owner, admin ou member. |
status | string | Statut d'appartenance : accepted, pending, declined ou archived. |
products | string[] | 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
productscontienteSign.
Filtrez sur les deux avant de proposer quelqu'un dans un sélecteur :
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
| Statut | error.code | Quand cela se produit |
|---|---|---|
403 | insufficient_scope | La clé ne porte pas users:read. |
403 | forbidden | L'accès à l'API n'est pas inclus dans l'offre actuelle de votre entreprise. |
429 | rate_limited | Plus de 1000 requêtes en 15 minutes pour cette clé. |