Facture

Authentification

Obtenir un jeton OAuth2 et appeler l'API au travers de la gateway.

Nirio protège ses API avec OAuth2 (client_credentials). Selon la configuration de votre produit, l'accès passe soit par OAuth2 seul, soit par OAuth2 avec mTLS. Cette configuration est fixée par Nirio lors de l'enrôlement du produit.

Deux modes d'accès

Mode du produitCe que vous présentez à chaque appel
OAuth2Un jeton Bearer obtenu avec votre client_id et client_secret.
OAuth2 + mTLSLe même jeton Bearer, et votre certificat client (mTLS) sur la connexion TLS.

Si votre produit est en OAuth2 + mTLS, un appel sans certificat client est refusé, même avec un jeton valide. Le certificat est fourni par Nirio lors de l'enrôlement.

Le même mode s'applique à la pré-autorisation

Lorsque la pré-autorisation est activée pour votre produit, Nirio s'authentifie auprès de votre serveur avec le mode configuré pour ce produit. En OAuth2 + mTLS, Nirio présente son certificat lors de cet appel. Le sens est inverse de celui de l'API : vous êtes le serveur appelé.

Dans les exemples ci-dessous, $API_BASE_URL désigne l'URL de base de votre environnement :

https://api.dev.nir.io

1. Obtenir un jeton

curl -X POST $API_BASE_URL/v3/oauth/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 (JWT) et sa durée de validité expires_in. Réutilisez le jeton jusqu'à son expiration plutôt que d'en demander un à chaque appel.

2. Appeler l'API en OAuth2

curl $API_BASE_URL/v3/products/$PRODUCT_ID/invoices \
  -H "Authorization: Bearer $ACCESS_TOKEN"

3. Appeler l'API en OAuth2 + mTLS

Si votre produit est en OAuth2 + mTLS, ajoutez votre certificat client à la connexion. Le jeton reste nécessaire.

curl $API_BASE_URL/v3/products/$PRODUCT_ID/invoices \
  --cert $CLIENT_CERT.pem --key $CLIENT_KEY.pem \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Identification du partenaire

N'envoyez pas x-partner-id

Ne transmettez pas d'en-tête x-partner-id. Votre identité est déduite du jeton d'accès : toute valeur envoyée à ce titre est ignorée.

Toutes les ressources (produits, factures) sont cloisonnées par partenaire : un produit ou une facture appartenant à un autre partenaire est traité comme inexistant (404).

Erreurs d'authentification

CasStatutRéponse
Jeton absent, invalide ou expiré401Format propre à la gateway (pas d'enveloppe error.code)
Identifiant partenaire absent ou non-UUID401MISSING_PARTNER_ID
401 MISSING_PARTNER_ID
{
  "error": {
    "code": "MISSING_PARTNER_ID",
    "message": "The authenticated partner identifier is missing."
  }
}

MISSING_PARTNER_ID n'apparaît en pratique qu'en cas de mauvaise configuration du client OAuth (identifiant non-UUID) : contactez l'équipe Nirio.

On this page