Coming soonDigiD Ghana is in development and is not yet open to the public.

For organisations

Claims and tokens

The short, accurate version for the sandbox. Every person in it is invented.

Every person is invented

In the sandbox the identity check is simulated. Every ID token says so, and your application must show that to its testers. There are no names, numbers, dates of birth, phone numbers or e-mail addresses to receive.

The ID token

Claims in the ID token
ClaimValue
issThe issuer, https://id-staging.digidghana.com
audYour client id
subAn identifier for the person that is specific to your application: stable across logins, different for every other organisation, and not the person's internal DigiD Ghana id
nonce, iat, exp, auth_timeAs in OpenID Connect
simulatedtrue: the identity behind this login was not checked by anyone
verification_statussimulated_verified
verification_labelA sentence containing “SIMULATED”, to show to people
amr["dgi_device_key"]: the person approved with a key held on their phone

Do not treat simulated_verified as proof of anything. A real identity check does not exist yet and when it does, it will be a different, clearly marked value that the sandbox never issues.

What there is not

  • No profile, email, phone or address scope, and no personal attributes at all.
  • The userinfo address answers with the subject only; do not build on anything more.
  • No claim is added because you ask for it. Claims are granted per application when your organisation is approved, and today the approved set is the list above.

Claims that may exist later

Any future claim will be listed here with how sensitive it is, and will need approval for your application and a screen where the person agrees. None of these exists today, and none is promised.

The tokens

Token lifetimes in the sandbox
TokenFormLifetime
ID tokenSigned (RS256)15 minutes
Access tokenOpaque: a random string that means nothing to you15 minutes
Refresh token (only with offline_access)Opaque, replaced at every use7 days
Authorization codeSingle useShort: exchange it at once

Lifetimes can change, so read expires_in from the answer instead of assuming them. Do not log tokens, codes or secrets.