Pour développer et tester votre intégration à l'API Henrri sans impacter vos données de production, vous avez besoin d'accéder à notre environnement Sandbox. Ce guide vous accompagne pas à pas depuis votre compte Henrri jusqu'à votre premier appel API authentifié.
Connectez-vous à votre compte Henrri sur www.henrri.net. Cliquez sur votre avatar en haut à droite, puis sélectionnez « API & Intégrations » dans le menu déroulant.
Le pictogramme NOUVEAU signale l'ajout récent de la rubrique API dans votre espace. Vous y accéderez à l'ensemble de vos clés, vos quotas et la documentation technique.
Dans le bloc Identifiants Sandbox, appuyez sur le bouton
CRÉER UN COMPTE SANDBOX. Cette action provisionne automatiquement un compte
miroir à votre compte de production, dans l'environnement de test
sandbox.henrri.net.
Le compte Sandbox est créé une seule fois. Si le bouton a disparu, c'est que votre compte est déjà provisionné — rendez-vous directement à l'étape 5 pour récupérer vos identifiants.
Une boîte de dialogue s'ouvre et vous demande le nom de votre nouvelle clé API.
Choisissez un nom explicite — par exemple test, dev-local ou
integration-erp — qui vous aidera à l'identifier dans votre tableau de bord.
Une modale SAUVEGARDEZ VOTRE SECRET API HENRRI apparaît avec votre secret. Ce secret ne sera affiché qu'une seule fois. Si vous le perdez, vous devrez révoquer la clé et en générer une nouvelle.
Pour le coller dans votre gestionnaire de mots de passe
Pour récupérer un fichier texte à stocker en lieu sûr
Ferme la modale — à ne cliquer qu'après sauvegarde
Stockez le secret dans un gestionnaire de mots de passe (1Password, Bitwarden, Dashlane…) ou dans les variables d'environnement de votre application. Ne le commitez jamais dans votre dépôt Git.
De retour sur la page API, deux nouvelles informations sont désormais affichées dans le bloc Identifiants Sandbox :
Plus bas, dans la section Clé de test, se trouve votre
Client ID (clé API). C'est la première moitié du couple d'authentification
Client ID + Secret que vous utiliserez dans tous vos appels API.
Avec le LOGIN et le MOT DE PASSE récupérés à l'étape 5, vous pouvez désormais vous connecter à l'interface Henrri Sandbox — compte vide et cloisonné : vos tests n'affectent pas vos vraies données.
Ouvrir sandbox.henrri.net ↗
/users/me
Votre clientId et clientSecret en main, voici le flow complet :
1) on appelle POST /v1/users/authenticate pour récupérer un
access_token, puis 2) on l'utilise en Bearer pour
appeler GET /v1/users/me — qui renvoie votre utilisateur + votre entreprise.
https://api-sandbox.henrri.io/v1/users/authenticate
https://api-sandbox.henrri.io/v1/users/me
# 1. Authentification — récupérer l'access_token
ACCESS_TOKEN=$(curl -s -X POST https://api-sandbox.henrri.io/v1/users/authenticate \
-H "Content-Type: application/json" \
-d '{
"clientId": "VOTRE_CLIENT_ID",
"clientSecret": "VOTRE_SECRET"
}' | jq -r '.access_token')
# 2. Appeler /users/me avec le token (user + company)
curl https://api-sandbox.henrri.io/v1/users/me \
-H "Authorization: Bearer $ACCESS_TOKEN"
const BASE = 'https://api-sandbox.henrri.io/v1';
// 1) Authentification
const authRes = await fetch(`${BASE}/users/authenticate`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientId: process.env.HENRRI_CLIENT_ID,
clientSecret: process.env.HENRRI_SECRET,
}),
});
const { access_token } = await authRes.json();
// 2) Récupérer l'utilisateur + l'entreprise
const meRes = await fetch(`${BASE}/users/me`, {
headers: { Authorization: `Bearer ${access_token}` },
});
const { user, company } = await meRes.json();
console.log('👤 User :', user.email);
console.log('🏢 Company:', company.name, `(id ${company.id})`);
<?php
$base = 'https://api-sandbox.henrri.io/v1';
// 1) Authentification → access_token
$ch = curl_init("$base/users/authenticate");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'clientId' => getenv('HENRRI_CLIENT_ID'),
'clientSecret' => getenv('HENRRI_SECRET'),
]),
]);
$auth = json_decode(curl_exec($ch), true);
$token = $auth['access_token'];
curl_close($ch);
// 2) Appel /users/me avec le Bearer token
$ch = curl_init("$base/users/me");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token"],
]);
$me = json_decode(curl_exec($ch), true);
curl_close($ch);
echo "👤 User : " . $me['user']['email'] . "\n";
echo "🏢 Company : " . $me['company']['name'] . "\n";
import os, requests
BASE = "https://api-sandbox.henrri.io/v1"
# 1) Authentification
auth = requests.post(
f"{BASE}/users/authenticate",
json={
"clientId": os.environ["HENRRI_CLIENT_ID"],
"clientSecret": os.environ["HENRRI_SECRET"],
},
).json()
access_token = auth["access_token"]
# 2) /users/me — user + company
me = requests.get(
f"{BASE}/users/me",
headers={"Authorization": f"Bearer {access_token}"},
).json()
print("👤 User :", me["user"]["email"])
print("🏢 Company:", me["company"]["name"], f"(id {me['company']['id']})")
{
"user": {
"id": 12345,
"email": "[email protected]",
"firstName": "Test",
"lastName": "123a456b",
"isEnabled": true,
"twoFactorEnabled": false,
"creationDate": "2026-04-24T15:29:09+02:00"
},
"company": {
"id": 1011,
"name": "Test123a456b",
"globalId": 101010,
"isSelfEmployed": false,
"email": "[email protected]",
"address": { "postCode": "68280" }
}
}
api-sandbox.henrri.io) est une copie iso-fonctionnelle de la production
(api.henrri.io) avec des données par contre cloisonnées (elles ne sont pas reprises).
Utilisez-la pour développer et tester
votre intégration sans risque. Passez en production uniquement quand votre code est validé.
Vos clés Sandbox sont prêtes, la documentation vous attend.