A3BC — Build digital trust. Together.
Français English
Documentation/Partage différé/API de partage différé

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_claims est 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_claims n’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é).