Gegevens ophalen

Ophalen access_token

Zodra de callback binnen is met de code, kan deze code worden ingewisseld voor een access_token. Dit gaat door middel van de authorization_code grant in combinatie met jwt-bearer client assertion. Maak hiervoor een client_assertion oftewel een jwt die wordt gesigned met het private deel van de RSA keypair.

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "keyid opgegeven bij de public key"
}
.
{
  "jti": "uuid"
  "iss": "client-id-van-de-dienst",
  "sub": "client-id-van-de-dienst",
  "aud": "https://www.acc.mijnenergiedata.nl/autorisatieregister",
  "exp": 1516239023,
  "iat": 1516239022ß
}
.
signature

Dit is een voorbeeld aanvraag:

curl --request POST \
--url https://www.acc.mijnenergiedata.nl/autorisatieregister/oauth2/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=authorization_code \
--data code=received-code \
--data redirect_uri=http://hostvandienst/callback \
--data code_verifier=generated \
--data client_id=afnemende-dienst-client-id \
--data client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer \
--data client_assertion=signed-assertion

Endpoint uit het access_token halen

Het access_token heeft de volgende structuur:

{
  "sub": "ae783dab-a56f-403b-8521-9fc707296288",
  "aud": "slynergie-consumption-data-eenmalig",
  "nbf": 1755854253,
  "scope": [
    "consumption_data"
  ],
  "service_id": "slynergie-consumption-data-eenmalig",
  "iss": "https://www.acc.mijnenergiedata.nl/autorisatieregister",
  "resources": [
    {
      "scope": "consumption_data",
      "endpoints": {
        "single_sync": "https://api.acc.mijnenergiedata.nl/dataregisters/v1/single/consumption_data"
      }
    }
  ],
  "exp": 1755855153,
  "iat": 1755854253,
  "jti": "eb489558-e6af-4db7-814c-3189f46ea7bb",
  "consent_id": "47652988-f592-4cac-a407-73f6bc992bdd",
  "eans": [
    "870751900000531268",
    "870751900000531275"
  ]
}

Uit het access_token moet deze $.resources.[0].endpoints.single_sync attribuut gehaald worden om te worden gebruikt als endpoint.

Eenmalig ophalen van de gegevens

Naar het endpoint dat hierboven gevonden is, moet de aanroep gedaan worden om de gegevens op te halen. Gebruik hetzelfde access_token als Bearer token in de Authorization header.

Authorization: Bearer eyJhbGciO..