Skip to main content
This guide explains how to integrate Digital ID into your app, using GBG Go. Your product manages the provider selection process. Once the user selects a provider, GBG Go handles the user experience through a hosted UI for complex interactions.

Prerequisites

To integrate Digital ID, you need:
  • A secure backend to make API calls
  • A frontend website or mobile app
  • An encryption key pair, with the public key formatted as a JWKS

Prepare your public JWKS

The publicJwks field takes your public key as a JSON Web Key Set (JWKS). A JWKS is a JSON object with a keys array. Include a single public key in the array. If you supply more than one key, then GBG Go uses only the first one. Keep your private key on your side, because you use it to decrypt the encrypted results.
Include only the public key. Don’t include these private key components:
  • EC keys: d
  • RSA keys: d, p, q, dp, dq, and qi
The following examples show an RSA public JWKS and an EC public JWKS:

Step 1: List applicable providers

Display a list of identity providers and prompt the user to select one. Display each provider using both the logo and name as shown below to comply with brand requirements.
LA WalletLA Wallet
Provider ID: usa-louisiana-wallet
LA WalletBankID Sweden
Provider ID: sweden-bankid
LA WalletMitID
Provider ID: denmark-mitid
LA WalletCA DMV Wallet
Provider ID: usa-california-dmv
LA WalletSPID
Provider ID: italy-spid
For a full list of all GBG Go supported providers, refer to the Digital ID portal.

Step 2: Create a session

After the user selects an identity provider, follow these steps:
1

Authenticate with GBG Go API

Use your API credentials to authenticate with the GBG Go API and obtain an access token. For detailed instructions, refer to the Authentication guide.
2

Start a journey

Use the /journey/start endpoint to initiate a customer journey.Sample request payload:
JSON
For more details on starting a journey, refer to the Start a journey guide.
3

Fetch journey state

After starting the journey, use the /journey/state endpoint to retrieve the current state of the journey. This provides you with a URI to redirect the user to the Digital ID provider’s hosted UI. The response includes a sessionId and a launchUrl field as shown in the example below:
JSON
Save the sessionId in your database and send the launchUrl to your frontend.
For more details on fetching the journey state, refer to the Fetch journey state guide.

Step 3: Launch session on frontend

When your frontend receives the launchUrl from your backend, launch it by navigating the user’s browser to the URL. This can be:
  • A top-level navigation
  • A new tab or window
  • A dialog

Step 4: Capture user redirect

When the user completes the session, they are redirected to your specified redirectUrl with added query parameters:
  • sessionId
Send the sessionId to your backend to fetch the final session results.

Step 5: Retrieve session results

After your frontend sends the sessionId to your backend, follow these steps:
1

Retrieve tasks

Use the /journey/tasks/list endpoint to get a list of tasks associated with the session. This helps you identify the specific task ID needed to fetch detailed results.
2

Submit task data

Use the /journey/task/update endpoint to submit any required data for the task.Sample request payload:
JSON
Submit the sessionId as clientId.For more details on submitting task data, refer to the Submit task data guide.
3

Fetch journey state

Use the /journey/state endpoint to check the status of the journey and retrieve the results.Sample request payload:
JSON
The response includes the results of the Digital ID verification.sample response payload:
JSON
For more details on fetching the journey state, refer to the Fetch journey state guide.

Troubleshooting

This section covers errors you might see when you send your public JWKS.

Invalid value format for publicJwks

If the publicJwks value isn’t in the expected format, then the API returns this error:
JSON
To fix the error:
  1. Check that the value is a JWKS object with a keys array. A single JSON Web Key (JWK) or a PEM string isn’t valid.
  2. Check that the key contains only public components.
  3. Validate the JSON. Look for trailing commas and incorrect quoting.
  4. Send the request again.