Skip to main content

What You Can Do

The YoID REST API lets your organisation participate in the YOMA ecosystem as a credential issuer, a credential verifier, or both.

Learning & Impact Partners

Issue verifiable credentials to youth when they complete programmes, achieve milestones, or participate in impact activities

Employers & Opportunity Providers

Request and verify youth credentials instantly — no manual document checks, no three-week turnarounds

Two Authentication Contexts

The YoID platform has two distinct authentication realms. Understanding this upfront prevents confusion during integration.
RealmWhoPurpose
Product Hub (product-hub)Your organisationAuthenticate your API calls to issue or verify credentials
Consumers (consumers)Youth wallet holdersAuthenticate youth into their wallet to accept credentials and respond to verification requests
As an integrating partner, you authenticate via the Product Hub realm. The youth-side authentication is handled by the wallet — you don’t need to manage it directly, but understanding that it exists helps when debugging the boundary between “I issued a credential” and “the youth received it.”
Your API calls operate in the Product Hub realm. The youth’s wallet operates in the Consumers realm. These are separate — a credential you issue travels across this boundary asynchronously.

APIs

The YoID platform exposes three core services:
APIBase URLWhat It Does
Consumer Onboarding APIhttps://test.didxtech.com/consumer-onboarding/apiProvisions a youth account — creates a Keycloak identity and initialises a wallet tenant
Me Creds APIhttps://test.didxtech.com/me-creds/apiCredential templates, issuance, presentation templates, verification requests
Me Wallet APIhttps://test.didxtech.com/me-wallet/apiFull wallet engine — credential delivery, acceptance/rejection, presentation approvals, user profiles

Environments

EnvironmentBase URLPurpose
Testhttps://test.didxtech.comBuild and validate your integration
ProductionProvided during go-liveLive credential issuance and verification
All examples in this documentation use the test environment. Your clientId and clientSecret are environment-specific — test credentials do not work in production. Contact the YoID team to initiate production onboarding once your integration is validated in the test environment.

What You’ll Need

Before you start coding, make sure you have:
  1. A clientId and clientSecret from the YoID team (see Prerequisites)
  2. An HTTPS callback URL if you plan to receive webhook notifications
  3. A test youth account to validate your credential flow end-to-end

Quick Look

Here’s what issuing a credential looks like — four API calls from template to delivery:
# 1. Authenticate
curl -X POST "https://test.didxtech.com/iam/realms/product-hub/protocol/openid-connect/token" \
  -d "grant_type=client_credentials&client_id=your_client_id&client_secret=your_client_secret"

# 2. Create a credential template (once)
curl -X POST "https://test.didxtech.com/me-creds/api/templates/credentials" \
  -H "Authorization: Bearer <token>" \
  -d '{"name": "Web Dev Completion", "type": "WebDevCompletion", ...}'

# 3. Issue a credential to a youth
curl -X POST "https://test.didxtech.com/me-creds/api/credentials/issuance" \
  -H "Authorization: Bearer <token>" \
  -d '{"credentialTemplateId": "<template_id>", "attributes": {...}}'

# 4. Deliver to youth's wallet
curl -X POST "https://test.didxtech.com/me-wallet/api/orgs/credentials" \
  -H "Authorization: Bearer <token>" \
  -d '{"credentialOffer": "<offer_uri>", "recipient": "[email protected]"}'

Getting Started

1

Read the Prerequisites

Understand partner onboarding and what credentials you’ll receive — Prerequisites
2

Set Up Authentication

Learn how to obtain and manage access tokens — Authentication
3

Choose Your Workflow

Follow the Issuer workflow to issue credentials, or the Verifier workflow to verify them