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.