TypeScript samples

Using the generated SDK. Server-side only — never ship an API key to a browser.

import { DiligenceApiKeyCredential, createManagementClient, createProductClient } from '@diligenceid/sdk';

const API_VERSION = '2026-08-30';

const apiKey = process.env.DILIGENCE_API_KEY;
if (!apiKey) throw new Error('DILIGENCE_API_KEY is not set.');

const credential = new DiligenceApiKeyCredential(apiKey);
const endpoint = 'https://api.example.diligence.id';

const management = createManagementClient(endpoint, credential);
const product = createProductClient(endpoint, credential);

List issuers

const issuers = await management.management.issuers.get(
  { queryParameters: { apiVersion: API_VERSION } },
);

for (const issuer of issuers?.value ?? []) {
  console.log(issuer.issuerId, issuer.status, issuer.displayName);
}

Create an issuer

const created = await management.management.issuers.post(
  {
    displayName: 'Sample Issuer',
    organisationReference: 'YOUR_ORGANISATION_REFERENCE',
    issuerType: 'Root',
  },
  { queryParameters: { apiVersion: API_VERSION } },
);

const issuerId = created!.name!;

Configure it, conditionally

const current = await management.management.issuers.byIssuerId(issuerId).get(
  { queryParameters: { apiVersion: API_VERSION } },
);

await management.management.issuers.byIssuerId(issuerId).patch(
  { displayName: 'Sample Issuer (renamed)' },
  {
    queryParameters: { apiVersion: API_VERSION },
    headers: { 'If-Match': current!.etag! },
  },
);

Issue

const issuance = await product.v10.credentials.issuance.post(
  {
    issuerId,
    credentialConfiguration: 'sample-membership',
    externalSubjectReference: 'sample-subject',
  },
  { headers: { 'Idempotency-Key': 'sample-issue-001' } },
);

console.log(issuance?.data?.status);   // awaiting_wallet

Handle errors

try {
  await management.management.issuers.byIssuerId(issuerId).activate.post(
    { queryParameters: { apiVersion: API_VERSION } },
  );
} catch (caught: any) {
  console.error('code=%s requestId=%s', caught?.error?.code, caught?.error?.innerError?.requestId);
}

See SDK errors.

Edit this page on GitHub