Démarrage rapide
Objectif : partir de zéro et réussir un appel authentifié sur le bac à sable, en quelques minutes.
1. Obtenir vos identifiants
Les identifiants partenaire sont délivrés par Staff & Go — il n'existe pas encore d'inscription en autonomie. Demandez à votre interlocuteur Staff & Go une application partenaire de bac à sable. Vous recevez trois éléments :
client_id |
Identifie votre application. |
client_secret |
À garder côté serveur. Jamais dans un navigateur, une application mobile ou un dépôt. |
| Scopes | L'ensemble des permissions accordées à votre application, par exemple partner:read. |
Les identifiants sont propres à un environnement : un client_id de bac à sable ne s'authentifie pas en
production.
2. Demander un jeton d'accès
L'API est un serveur de ressources OAuth 2.0. Authentifiez-vous avec le flux client credentials auprès du serveur d'autorisation Staff & Go, puis envoyez le jeton obtenu en bearer token.
curl -X POST "https://<hote-serveur-autorisation>/realms/staffngo-partners/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=$CLIENT_ID" \
-d "client_secret=$CLIENT_SECRET"
La réponse contient un access_token et sa durée de vie expires_in, en secondes.
Demandez un nouveau jeton peu avant l'expiration du précédent, plutôt qu'après un
401. Émettre un jeton coûte peu ; une rafale de réessais à l'expiration coûte cher.
Ne demandez aucun scope. Ceux accordés à votre application sont portés par vos identifiants, et une demande de jeton qui ne réclame rien les obtient tous — c'est aussi ce qui fera survivre votre intégration le jour où un administrateur modifiera ce qu'elle a le droit de lire.
Si un appel est rejeté avec Scope '…' required, c'est que le scope ne vous a pas été accordé :
demandez-le à l'administrateur de l'entreprise cliente. Ce que vous détenez est listé par
GET /api/v1/client/partner/profile.
3. Faire votre premier appel
GET /api/v1/client/partner/profile renvoie l'identité que l'API a résolue pour votre jeton. C'est le moyen
le plus rapide de vérifier d'un coup que les identifiants, les scopes et le rattachement au tenant sont
corrects.
curl "https://<hote-api-external>/api/v1/client/partner/profile" \
-H "Authorization: Bearer $ACCESS_TOKEN"
Une réponse 200 vous apprend trois choses utiles : quel partenaire vous êtes, sur quel tenant client vos
appels agissent, et quels scopes votre jeton porte réellement.
{
"partnerId": "partner-sample",
"tenantIds": [
"4242"
],
"scopes": [
"external-api",
"partner:read",
"payroll:read",
"payroll:trigger",
"referentials:read",
"companies:read",
"employees:read",
"employments:read",
"leaves:read",
"beta:access"
]
}
4. Consulter la référence
La référence de l'API liste chaque endpoint avec ses paramètres et ses réponses ; le scope de chacun est donné dans le guide de son thème. Vous pouvez vous y authentifier avec les mêmes identifiants et appeler les endpoints directement depuis la page.
En cas d'erreur
| Statut | Ce que cela signifie en général |
|---|---|
401 |
Jeton absent, malformé ou expiré. Émettez-en un nouveau. |
403 |
Le jeton est valide mais il lui manque le scope exigé par l'endpoint — la réponse le nomme. |
429 |
Vous avez dépassé la limite de débit de votre plan. Attendez Retry-After secondes. |
4xx / 5xx |
Lisez le corps application/problem+json : type identifie l'erreur, et traceId est ce dont le support a besoin pour retrouver votre requête. |