Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.go.gbgplc.com/llms.txt

Use this file to discover all available pages before exploring further.

After starting a journey, you receive an instanceUrl in the response. Share this URL with the end user to begin the verification experience. The GBG hosted journey handles everything from this point, including device authentication, identity verification, UI (user interface) rendering, and data submission are all managed automatically. Your backend does not need to call any other endpoints until you are ready to fetch results.

Share the instance URL

Share the instanceUrl with the end user using a delivery method of your choice. For example:
  • Redirect: Redirect the end user directly from your application to the URL.
  • Email or SMS: Send the URL to the end user via email or text message.
  • In-app link: Display the URL as a button or link within your application.
  • QR code: Generate a QR code from the URL for the end user to scan.
The end user clicks the link and is taken to the hosted journey experience, where they complete the verification steps you configured in the journey. The hosted pages handle all front-end concerns, including responsive design, document capture, biometric verification, and form validation.
GBG GO does not deliver the URL to the end user on your behalf. You are responsible for sharing the URL with the end user through your chosen delivery method. The above examples are suggested approaches, but you can implement the delivery in any way that fits your application’s architecture and user experience.

Server-side redirect

The simplest approach for web applications. Your backend starts the journey and immediately redirects the user:
app.post('/verify', async (req, res) => {
  const response = await fetch('https://eu.platform.go.gbgplc.com/v2/captain/journey/start', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${accessToken}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      resourceId: process.env.JOURNEY_RESOURCE_ID,
      context: { config: { delivery: 'page' }, subject: {} }
    })
  });

  const { instanceId, instanceUrl } = await response.json();

  // Store instanceId to poll later
  await db.verifications.create({ userId: req.user.id, instanceId });

  res.redirect(instanceUrl);
});

Return the URL to a frontend client

For single-page apps or mobile clients, return the URL as JSON and let the client handle navigation:
app.post('/api/verify', async (req, res) => {
  const response = await fetch('https://eu.platform.go.gbgplc.com/v2/captain/journey/start', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${accessToken}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      resourceId: process.env.JOURNEY_RESOURCE_ID,
      context: { config: { delivery: 'page' }, subject: {} }
    })
  });

  const { instanceId, instanceUrl } = await response.json();
  await db.verifications.create({ userId: req.user.id, instanceId });

  res.json({ instanceUrl });
});

Send via email or SMS

For asynchronous flows where the end user completes verification later:
Node.js
const { instanceId, instanceUrl } = await startJourney();

await db.verifications.create({ userId: user.id, instanceId });

await emailClient.send({
  to: user.email,
  subject: 'Action required: Complete your identity verification',
  body: `Please complete your verification here: ${instanceUrl}\n\nThis link is time-limited.`
});

What the end user experiences

Once the end user opens the instanceUrl, the hosted journey guides them through the verification steps configured for the journey. This includes:
  • Identity data collection
  • Document capture
  • Biometric verification
The end user completes all steps on the hosted pages without any further involvement from your backend.
The instanceUrl is time-limited. Share it with the end user promptly after receiving it from the API response.

Next step

Go to Fetch journey state to poll for completion and retrieve verification results.