Skip to main content

Overview

didx:verify has two projects. Each project has its own authentication server, and the CustomClient3 endpoints use a third: All three use the OAuth2 client_credentials grant. Request a token from the server that matches the endpoint you are calling.
A token is scoped to its own server. A Marketplace sc-citizen token is not accepted by the Journey API, and a Journey vc-verify token is not accepted by the Marketplace API.

Marketplace authentication

Use your Marketplace clientId and clientSecret with the sc-citizen scope:
This token authenticates every Marketplace endpoint on https://citizen.uat.securecitizen.cloud.

Journey authentication

Use your Journey clientId and clientSecret with the vc-verify scope:
This token authenticates the /journey/* endpoints on https://verify.dev.securecitizen.cloud.

CustomClient3 authentication

Two Journey endpoints are served from https://customclients.dev.securecitizen.cloud rather than the Journey base URL:
  • POST /CustomClient3/CustomClient3StartProcess
  • POST /CustomClient3/CustomClient3RequestResult
These endpoints take an sc-citizen token from sts.dev.securecitizen.cloud, not a Journey vc-verify token:
The rule is simple: authenticate against the server that matches the endpoint’s base URL. Each endpoint’s API Reference page shows its base URL and required scope.

Response

All three servers return the same token shape:

Using the token

Include the token as a Bearer token in every request:
Most Marketplace and CustomClient3 requests require "ConsentReceived": true in the request body. This documents that you have obtained the subject’s informed consent to process their personal data, as required by POPIA.
Requests with ConsentReceived: false will be rejected. This field is audited and required for regulatory compliance.
The following endpoints handle consent differently:

Checking system status

Before making Marketplace verification calls, you can check whether the Department of Home Affairs (DHA) systems are online:
This returns the current availability of downstream DHA systems so you can anticipate whether calls will succeed or fall back to cached data. The response reports NPRStatus, HANISStatus, and NIISStatus. TBC: engineering adding GET /Citizen/Status to the API reference.

HTTP status codes