API de partage différé
Authentification, format de réponse, erreurs et documents.
Authentification
Obtenez un jeton avec le grant client_credentials et le scope private:delayed_sharing, avec votre client_id et client_secret (client_secret_basic).
curl -s -u "$CLIENT_ID:$CLIENT_SECRET" \
-d grant_type=client_credentials \
-d scope=private:delayed_sharing \
https://oidc-sandbox.a3bc.io/oauth2/token
import requests
tok = requests.post(TOKEN_URL, auth=(CLIENT_ID, CLIENT_SECRET),
data={"grant_type": "client_credentials", "scope": "private:delayed_sharing"},
timeout=15).json()
r = requests.get(delayed_sharing_url,
headers={"Authorization": "Bearer " + tok["access_token"]}, timeout=15)
Réponse (le jeton vit environ 10 minutes dans l’exemple du guide) :
{
"access_token": "MCe6dsjy1ATH12WWuKyEvRH0g7UhcLrkvZo2iGYA9iI....",
"expires_at": 1781855441,
"expires_in": 599,
"scope": "private:delayed_sharing",
"token_type": "bearer"
}
Appelez ensuite l’URL du claim private:delayed_sharing avec Authorization: Bearer <access_token>. La réponse est en application/json.
Réponse
| Attribut | Type | Description |
|---|---|---|
claims |
objet | Les claims et leurs valeurs, au même format que userinfo. |
waiting_validation_claims |
liste de string | Claims qui pourront être récupérés après validation. |
shared_until |
string | Date après laquelle l’API n’est plus accessible. |
{
"claims": {
"birthdate": "1978-03-12",
"family_name": "DOE",
"given_name": "JOHN",
"private:ssn": "",
"private:ssn_key": "",
"private:ssn_verified": ""
},
"shared_until": "2026-06-19T08:21:58Z",
"waiting_validation_claims": ["private:ssn", "private:ssn_key", "private:ssn_verified"]
}
Interpréter les claims manquants
- Si
waiting_validation_claimsest vide, tout ce qui peut être partagé est présent : plus aucune information ne sera ajoutée. - Un claim absent et jamais présent dans
waiting_validation_claimsn’a jamais été couvert par le consentement. - Un claim qui y figurait puis a disparu : le credential n’a jamais été validé, ou l’utilisateur l’a supprimé.
Documents
Un claim de document renvoie une URL à consommer comme l’API document, mais avec le jeton client_credentials :
{ "claims": { "private:doc.ssn": "http://openui.a3bc.lan/delayed-sharing/c3e8a143-.../doc/ssn",
"private:doc.ssn.hash": ["sha256:f20a7da2..."] },
"shared_until": "2026-06-19T08:34:47Z" }
Erreurs
Le corps d’erreur contient code et message.
| Code | Message | HTTP | Description |
|---|---|---|---|
00001 |
Internal server error | 500 | Erreur plateforme ; vous pouvez réessayer. |
00010 |
Authentication failed | 401 | En-tête absent ou mal formé, jeton invalide ou sans le claim private:delayed_sharing. |
00011 |
Resource not found | 404 | Utilisateur ou transaction inexistant. |
00020 |
Sharing consent revoked | 403 | L’utilisateur a révoqué le consentement. |
00021 |
Sharing consent expired | 401 | Le partage a expiré. |
00022 |
Unprocessable object | 401 | Erreur irrécupérable (entité mal formée ou de mauvais type). |
Retentez uniquement sur 00001 et 00010 (après avoir obtenu une autorisation valide). Pour les autres, appliquez vos règles métier (consentement révoqué ou expiré).