Skip to Content
API and Dashboard🇩🇪 German EUDI Wallet

🇩🇪 German EUDI Wallet

The German EUDI Wallet  is the German government’s national identity wallet, and is set to become Germany’s official EUDI Wallet under the European Digital Identity (EUDI) regulation. It allows German citizens to store a digital version of their national identity card, and hold and present other attestations as well. The wallet supports issuance of credentials in both the ISO 18013-5 mDoc and SD-JWT VC  format and presents them over OpenID4VP, which means you can integrate with the German EUDI wallet using Paradym without any custom integration.

This guide covers all features Paradym supports with the German EUDI wallet. Currently parties are able to verify the PID from the wallet, as well as issue their own attestations (EAAs) into the wallet.

The German EUDI Wallet sandbox is under active development, and things may break unexpectedly. If something no longer works as described in this guide, please let us know so we can update it.

For an up-to-date overview of the status of the German wallet and other European wallets, see the EUDI Wallet country explorer .

Desktop flow

Mobile flow

Requirements

💎
This guide uses EUDI Lists of Trusted Entities (LoTE) and Certificate Signing Requests (CSR) which is only available in the Builder, Pro, Enterprise and Custom tier. Learn more about our pricing tiers .

To issue or verify credentials from the German EUDI wallet you need:

  1. A Paradym account  and project on at least the Builder tier.
  2. Access to the German EUDI Wallet Sandbox, including the wallet app and registrar.
  3. The German PID Provider LoTE registered as a trusted entity, so only credentials issued by the German PID Provider are accepted.

For verification you additionally need:

  1. A verifier certificate issued by the German Sandbox registrar to sign your presentation requests.
  2. A presentation template defining the credential and attributes you request.

For issuance you additionally need:

  1. An issuance certificate to sign your credentials.
  2. A credential template defining the credential and attributes you issue.

Getting access to the German EUDI Wallet Sandbox

The German EUDI Wallet has a sandbox environment for testing integrations. You first need to register your use case and get onboarded to the sandbox environment. You can find more information on joining the ecosystem , and register through the Ecosystem Knowledge Center  (“Join the sandbox community”).

Once you have been granted access to the German EUDI Wallet Sandbox application through Testflight or the Google Play Store, and you have access to the German EUDI Ecosystem Sandbox Registrar , you can start building your integration with Paradym.

💬

If you need help with defining your use case or submitting your request to the German EUDI Wallet sandbox, reach out to us or join the Paradym Slack .

Setting up the wallet and receiving the PID attestations

Before you can present credentials from the wallet, it needs to be initialized and hold a PID attestation. The onboarding in the application is quire straightforward. If you don’t have a test eID card, make sure you select “Use simulated eID card”.

Once the wallet is set up with the PID, you’re ready to issue or verify with Paradym as described in Verification/Issuance.

German EUDI Wallet Setup

Supported credentials

The German EUDI Wallet currently only supports the PID as a native credential, however you can issue additional attestations (EAAs) into the wallet based on your own use case:

CredentialCredential TypeDescription
Person Identification Data (PID)urn:eudi:pid:de:1 (SD-JWT VC) / eu.europa.ec.eudi.pid.1 (mDoc)Core identity data (name, date of birth, nationality, address, …) following the EU PID Rulebook , extended by the German PID reference . Note that the German EUDI Wallet only supports requesting the SD-JWT VC PID under the German namespace, not the generic urn:eudi:pid:1 VCT type.

The tables below list the attributes each credential can disclose. The Claim column is the attribute identifier you use in a presentation template. The Always Available column indicates whether the attribute is always present in the credential. In order to comply with data minimization principles you should request only the attributes your use case strictly needs. For the full, authoritative list of PID attributes see the German PID reference .

The German EUDI Wallet supports age verification using the PID: you can request whether the holder is over a given threshold (12, 14, 16, 18, 21, 65) without revealing their date of birth. Request only the relevant threshold instead of birthdate for age-gated use cases.

VCT urn:eudi:pid:de:1. Core identity data following the German PID reference.

ClaimAlways AvailableDescription
family_nameYesHolder’s surname.
given_nameYesHolder’s given name(s).
birthdateYesDate of birth (YYYY-MM-DD). Unknown month or day is encoded as 00.
place_of_birthYesObject with at least locality. no_place_info: true if no place is recorded.
nationalitiesYesNationalities as an array of ISO 3166-1 alpha-2 country codes.
address.countryNoISO 3166-1 alpha-2 country code of the holder’s residence.
address.regionNoFederal state or region of the holder’s residence.
address.localityNoCity of the holder’s residence.
address.postal_codeNoPostal code of the holder’s residence.
address.street_addressNoStreet name and house number of the holder’s residence.
age_equal_or_overNoObject of boolean age thresholds (12, 14, 16, 18, 21, 65).
source_document_typeNoSource document (ID = eID card, AR/AS/AF = residence permit, IC = EU Citizen ID).
birth_nameNoBirth name of the holder; may be empty.
also_known_asNoArtistic or stage name.
academic_titleNoAcademic title.
date_of_expiryYesDate the PID expires (YYYY-MM-DD).
issuing_authorityYesSet to the issuing country code (DE).
issuing_countryYesISO 3166-1 alpha-2 country code of the issuing country (always DE).

Verification

You can verify the PID credential from the German EUDI Wallet with Paradym. Below you’ll walk through the full flow step by step, from getting a verifier certificate from the German sandbox registrar to handling the presentation response.

Getting an access certificate from the German EUDI Wallet Sandbox

To request credentials from the German EUDI Wallet, you authenticate your presentation requests with an X.509 verifier certificate. The German EUDI Wallet currently only requires an access certificate (identifying the organization) to authenticate your presentation requests, and does not require a registration certificate yet.

The German EUDI Wallet Sandbox registrar already supports creating registration certificates, but these are not yet verified or used by the wallet. Paradym will add support for importing registration certificates in the near future.

First we need to create a Certificate Signing Request (CSR) with a P-256 key for the access certificate. The Certificate Signing Requests guide contains detailed guidance.

We recommend creating the Certificate Signing Request through the dashboard as it allows to easily copy the public key in the format the German EUDI Wallet Sandbox registrar requires. You can also create the CSR through the API, but will have to to manually transform the CSR to a SPKI (Subject Public Key Info) in PEM format.

To create a certificate signing request from the dashboard, go to the Create certificate  page under the “Trust” tab of your project, and provide the following:

  • Type: Verifier Sign Request
  • Key type: P-256
  • Country Name: DE (MUST be DE, as the certificate will be issued with Country Name set to DE and Paradym requires the imported certificate to match the request)
  • Common Name: e.g. Paradym (MUST match the company name you registered with the German EUDI Wallet Sandbox, as the certificate will be issued with Common Name set to the organization name you registered and Paradym requires the imported certificate to match the request)

Once you have created the CSR and obtained the public key, you can register it in the German EUDI Wallet Sandbox registrar. The registrar will return a signed certificate, which you can then import into Paradym.

  1. Go to https://sandbox.eudi-wallet.org  and log in with your sandbox account.
  2. Navigate to the “Dashboard”, click on your registered Relying Party, and then click on the ”+” button next to the “Access Certificates” section.
  3. Fill in the form:
  • DNS Entries: agent.paradym.id
  • Public Key: Paste the SPKI PEM you extracted from the CSR.
  1. Click “Create Access Certificate” and then “Copy Certificate”.

Now you can import the certificate into Paradym. See the Importing an externally signed certificate guide for detailed instructions.

To import a certificate from a request through the dashboard, go to the Certificates  page under the “Trust” tab of your project, and click on the import certificate button of the request you just created.

Provide the copied certificate in the “Certificate chain” input field and click “Import certificate”.

Registering the German PID Provider as a trusted entity

Trusted Entities in Paradym enable you to define the issuers you trust. Trusted entities can be linked to a specific credential that is requested in a presentation template, and limit who can issue a specific credential. This ensures only the authorized issuers of a credential (in this case the German PID Provider) are trusted during credential verification.

The German EUDI Wallet Sandbox has a website where it publishes it’s trust lists . The PID is signed under the EUDI Pid Providers List of Trusted Entities (LoTE). Other attestation types (EAAs) are signed under custom trust lists, not published on this website.

To configure Paradym to only accept the PID issued by the German Sandbox, you register the LoTE on a trusted entity and link it to your presentation template.

Once the EU publishes a publicly available List of Trusted Entities (LoTE) you will be able to select this list in Paradym. Until then you will have to register the LoTE from the German Sandbox manually.

Create a single trusted entity for the German EUDI Wallet Sandbox. Note the id of the created trusted entity, as you’ll need it to link it to your presentation template below.

To create the trusted entity from the dashboard, go to the Create trusted entity  page under the “Trust” tab of your project, and:

  • Give it a recognizable name, e.g. German EUDI Wallet Sandbox.
  • Under Lists of Trusted Entities, click + Add ETSI LoTE and paste the PID Provider URL (https://bmi.usercontent.opencode.de/eudi-wallet/test-trust-lists/pid-provider.jwt), naming it e.g. PID Providers.
  • In teh “Certificate” field add the the “Signing Certificate” from the Trust Lists page 
  • Click Create trusted entity.

NOTE: The PID Providers URL may change, so it is recommended to copy the URL from the pid-provider.jwt link on the Trust Lists page .

Creating the presentation template

A presentation template defines which credential and which attributes you request from the wallet. The German EUDI Wallet holds the PID in both SD-JWT VC and mDoc format, so you can choose which format you want to verify. Each template:

  • uses the X.509 certificate (P-256) authentication method (the access certificate you created), and
  • links the trusted entity you created so that only the PID issued by the German PID Provider is accepted.

The German EUDI Wallet only supports requesting the SD-JWT VC PID under the German namespace urn:eudi:pid:de:1, not the generic urn:eudi:pid:1 VCT. The SD-JWT VC and mDoc PID use different attribute names (e.g. birthdate vs birth_date, nationalities vs nationality), so make sure you use the claims of the format you are requesting. See Supported credentials for the full list.

On iOS, the German EUDI Wallet currently does not return nested claims (objects and arrays). If you are testing on iOS, do not request nested attributes such as address (an object) or nationalities (an array), they will not be returned. Request only top-level attributes until this is resolved.

We recommend creating these templates through the API, as it lets you copy the payloads below exactly.

Make a POST request to https://api.paradym.id/v1/projects/{projectId}/templates/presentations. See the API Reference  for detailed usage information.

Replace <TRUSTED_ENTITY_ID> in the payloads below with the id of the trusted entity you created.

Person Identification Data (PID) — SD-JWT VC

Use this template to request the PID as an SD-JWT VC (VCT urn:eudi:pid:de:1). Keep only the attributes your use case strictly requires and remove the rest.

POST/v1/projects/{projectId}/templates/presentationsOpen in Reference
{
  "name": "Proof of Identity (SD-JWT VC)",
  "description": "This information is requested to verify your identity.",
  "verifier": {
    "signer": "certificate",
    "keyType": "P-256"
  },
  "credentials": [
    {
      "name": "Person Identification Data",
      "description": "PID from the German EUDI Wallet",
      "format": "sd-jwt-vc",
      "type": "urn:eudi:pid:de:1",
      "trustedIssuers": [
        "<TRUSTED_ENTITY_ID>"
      ],
      "attributes": {
        "given_name": {
          "type": "string"
        },
        "family_name": {
          "type": "string"
        },
        "birthdate": {
          "type": "date"
        },
        "address": {
          "type": "object",
          "properties": {
            "street_address": {
              "type": "string"
            },
            "postal_code": {
              "type": "string"
            },
            "locality": {
              "type": "string"
            },
            "country": {
              "type": "string"
            }
          }
        },
        "nationalities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "issuing_authority": {
          "type": "string"
        },
        "issuing_country": {
          "type": "string"
        }
      }
    }
  ]
}

Person Identification Data (PID) — mDoc

Use this template to request the PID as an mDoc (namespace eu.europa.ec.eudi.pid.1). Keep only the attributes your use case strictly requires and remove the rest.

POST/v1/projects/{projectId}/templates/presentationsOpen in Reference
{
  "name": "Proof of Identity (mDoc)",
  "description": "This information is requested to verify your identity.",
  "verifier": {
    "signer": "certificate",
    "keyType": "P-256"
  },
  "credentials": [
    {
      "name": "Person Identification Data",
      "description": "PID from the German EUDI Wallet",
      "format": "mdoc",
      "type": "eu.europa.ec.eudi.pid.1",
      "trustedIssuers": [
        "<TRUSTED_ENTITY_ID>"
      ],
      "attributes": {
        "eu.europa.ec.eudi.pid.1": {
          "properties": {
            "given_name": {},
            "family_name": {},
            "birth_date": {},
            "resident_street": {},
            "resident_postal_code": {},
            "resident_city": {},
            "resident_country": {},
            "nationality": {},
            "issuing_authority": {},
            "issuing_country": {}
          }
        }
      }
    }
  ]
}

Requesting data from the German EUDI Wallet

German EUDI Wallet credentials are presented over OpenID4VP, so you create an OpenID4VP verification request  from the presentation template you created above.

Make a POST request to https://api.paradym.id/v1/projects/{projectId}/openid4vc/verification/request, passing the presentationTemplateId of the template. Response encryption is enabled by default, and we recommend keeping it enabled.

POST/v1/projects/{projectId}/openid4vc/verification/requestOpen in Reference
{
  "presentationTemplateId": "<PRESENTATION_TEMPLATE_ID>"
}

The response contains a few different URIs you can present to the holder. Which one you use depends on whether you want to route the holder through the Paradym invitation page or link straight into the wallet:

  • authorizationRequestUri / authorizationRequestQrUri — these point to the Paradym invitation page, which renders a QR code and deeplinks into the wallet. Use these when you want the invitation page as an intermediary — for example for cross-device flows where the holder scans a QR. authorizationRequestQrUri returns that QR code directly as an image.
  • authorizationRequestDeeplinkUri / authorizationRequestDeeplinkQrUri — these are the raw openid4vp:// deeplink, without the invitation page. Use these when you want to link directly into the German EUDI Wallet from your own application or website. For example behind a “Continue in wallet” button on a same-device flow. authorizationRequestDeeplinkQrUri returns a QR code image encoding that deeplink.
{ "id": "cmqv0gmum002b02s6vl2gol70", "authorizationRequestUri": "https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F6abba887-8ed8-40a7-8e3f-339cc29f6cab%2Fauthorization-requests%2Fd9530d1e-d52f-488f-bfec-016011704e3b%3Fraw%3Dtrue&client_id=x509_hash%3A1mQ2eeNSaiqjN61UAcakxfKN7msnDb2-YN89fJywqxQ", "authorizationRequestQrUri": "https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F6abba887-8ed8-40a7-8e3f-339cc29f6cab%2Fauthorization-requests%2Fd9530d1e-d52f-488f-bfec-016011704e3b%3Fraw%3Dtrue&qr=true", "authorizationRequestDeeplinkUri": "openid4vp://?request_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F6abba887-8ed8-40a7-8e3f-339cc29f6cab%2Fauthorization-requests%2Fd9530d1e-d52f-488f-bfec-016011704e3b%3Fraw%3Dtrue&client_id=x509_hash%3A1mQ2eeNSaiqjN61UAcakxfKN7msnDb2-YN89fJywqxQ", "authorizationRequestDeeplinkQrUri": "https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F6abba887-8ed8-40a7-8e3f-339cc29f6cab%2Fauthorization-requests%2Fd9530d1e-d52f-488f-bfec-016011704e3b%3Fraw%3Dtrue&qr=true&deeplink=true" // ... other parameters ... }

See Verify credentials for the full verification flow, including the dashboard steps.

Handling the presentation response

Once the holder approves the request in the German EUDI Wallet and the presentation is verified, the received credential data becomes available. The recommended way to receive it is through a webhook. Listen for the following events:

  • openid4vc.verification.data — emitted when the verification succeeds, containing the disclosed attributes.
  • openid4vc.verification.failed — emitted when the verification fails (for example, when the credential was not issued by a trusted entity, or a certificate in its chain is expired or revoked).

Alternatively, you can retrieve the verification session through the API by making a GET request to https://api.paradym.id/v1/projects/{projectId}/openid4vc/verification/{openId4VcVerificationId} using the id from the verification request response. Note that verification data is only available through the API for a limited time, depending on your project’s “Verification data access” setting.

A completed SD-JWT VC PID verification looks like this. The disclosed attributes are under credentials[].presentedAttributes, and isValid confirms the issuer signature verified against the trusted entity. When verifying the mDoc PID, the attributes are instead keyed by the eu.europa.ec.eudi.pid.1 namespace and use the mDoc claim names.

{ "id": "cmqv0gmum002b02s6vl2gol70", "createdAt": "2026-06-26T14:12:58.412Z", "updatedAt": "2026-06-26T14:13:10.738Z", "status": "verified", "error": null, "presentationTemplateId": "cmqv088ti001l02s6n72tlcxw", "credentials": [ { "exchange": "openid4vc", "format": "sd-jwt-vc", "presentedAttributes": { "given_name": "Erika", "family_name": "Mustermann", "birthdate": "1964-08-12", "address": { "street_address": "Heidestraße 17", "postal_code": "51147", "locality": "Köln", "country": "DE" }, "nationalities": ["DE"] }, "raw": "eyJhbGciOiJFUzI1NiIsInR5cCI6ImRjK3NkLWp3dCIsImtpZCI6IjE...", "isValid": true, "issuer": { "commonName": "PID Issuer", "certificate": "-----BEGIN CERTIFICATE-----\nMIIDIzCCAsmgAwIBAgIUF…\n-----END CERTIFICATE-----" }, "holder": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:BhFl4IfPCkV9xRSOIz7RoVG2npQzktCcdramKdZMQ0c" } ], "expiresAt": "2026-06-26T14:27:58.408Z" }

See Handling the verification response for the full details on webhooks, the API, and viewing verifications in the dashboard.

Issuance

You can issue your own attestations (EAAs) into the German EUDI Wallet with Paradym. The wallet supports issuance in both SD-JWT VC and mDoc format over OpenID4VC, so no custom integration is needed. Below you’ll walk through the full flow, from creating an issuance certificate to issuing a credential.

The PID itself is issued into the wallet by the German PID Provider during wallet setup. You cannot issue a PID yourself. This section covers issuing your own attestations (EAAs) on top of the PID.

Creating an issuance certificate

To issue credentials into the German EUDI Wallet, you sign your credentials with an X.509 issuer certificate. Create an issuer root certificate with a P-256 key. The certificates guide contains detailed guidance, but in short:

The German EUDI Wallet currently performs no check on the issuer’s access or registration certificate for issuance. For simplicity this guide therefore uses a self-signed issuer certificate. Once there is more guidance on access and registration certificates for issuance, we will update this guide.

To create an issuer certificate from the dashboard, go to the Create certificate  page under the “Trust” tab of your project, and provide the following:

  • Type: Issuer Root
  • Key type: P-256
  • Country Name: e.g. DE
  • Common Name: e.g. Paradym
  • Issuer Alternative Name URL: e.g. https://paradym.id

Creating the credential template

A credential template defines the format, type and attributes of the credential you issue. Create one template per credential you want to issue, using the issuer certificate you created above as the issuer.

The template created here is an example, you can customize it according to your needs. See the Issue credentials guide for the full set of options (branding, validity, localization, and external integrations), but make sure to align it with the requirements from this guide so the credential is accepted by the German EUDI Wallet.

SD-JWT VC

To create an SD-JWT VC credential template, make a POST request to https://api.paradym.id/v1/projects/{projectId}/templates/credentials/sd-jwt-vc. See the API Reference  for detailed usage information.

The example below issues a simple membership attestation. Replace the type and attributes with the credential you want to issue.

POST/v1/projects/{projectId}/templates/credentials/sd-jwt-vcOpen in Reference
{
  "name": "Membership Card",
  "description": "Membership attestation issued into the German EUDI Wallet",
  "issuer": {
    "signer": "certificate",
    "keyType": "P-256"
  },
  "validUntil": {
    "start": "issuance",
    "future": {
      "years": 1
    }
  },
  "type": "MembershipCard",
  "attributes": {
    "membership_number": {
      "type": "string",
      "name": "Membership Number",
      "description": "Unique membership number",
      "required": true,
      "alwaysDisclosed": false
    },
    "full_name": {
      "type": "string",
      "name": "Full Name",
      "description": "Full name of the member",
      "required": true,
      "alwaysDisclosed": false
    }
  }
}

mDoc

To create an mDoc credential template, make a POST request to https://api.paradym.id/v1/projects/{projectId}/templates/credentials/mdoc. See the API Reference  for detailed usage information.

POST/v1/projects/{projectId}/templates/credentials/mdocOpen in Reference
{
  "name": "Membership Card",
  "description": "Membership attestation issued into the German EUDI Wallet",
  "issuer": {
    "signer": "certificate",
    "keyType": "P-256"
  },
  "validUntil": {
    "start": "issuance",
    "future": {
      "years": 1
    }
  },
  "type": "com.example.membership.1",
  "attributes": {
    "com.example.membership.1": {
      "membership_number": {
        "type": "string",
        "name": "Membership Number",
        "description": "Unique membership number",
        "required": true,
        "alwaysDisclosed": false
      },
      "full_name": {
        "type": "string",
        "name": "Full Name",
        "description": "Full name of the member",
        "required": true,
        "alwaysDisclosed": false
      }
    }
  }
}

See the Issue credentials guide for a detailed walkthrough of each field. You can also integrate with external Authorization Servers and Attribute Providers.

Issuing a credential

German EUDI Wallet credentials are issued over OpenID4VC, so you create a credential offer  from the credential template you created above.

Make a POST request to https://api.paradym.id/v1/projects/{projectId}/openid4vc/issuance/offer, passing the credentialTemplateId and the attributes values for this specific credential. The keys in attributes must match the keys you defined on the credential template.

POST/v1/projects/{projectId}/openid4vc/issuance/offerOpen in Reference
{
  "credentials": [
    {
      "credentialTemplateId": "<CREDENTIAL_TEMPLATE_ID>",
      "attributes": {
        "membership_number": "DE-0001234",
        "full_name": "Erika Mustermann"
      }
    }
  ]
}

If you configured the template with an external Attribute Provider, you can omit the attributes in the request, and Paradym will fetch them from the provider during issuance.

The response contains a few different URIs you can present to the holder. Which one you use depends on whether you want to route the holder through the Paradym invitation page or link straight into the wallet:

  • offerUri / offerQrUri — these point to the Paradym invitation page, which renders a QR code and deeplinks into the wallet (or prompts to install it). offerQrUri returns that QR code directly as an image.
  • offerDeeplinkUri / offerDeeplinkQrUri — these are the raw openid-credential-offer:// deeplink, without the invitation page. Use these when you want to link directly into the German EUDI Wallet from your own application or website. For example behind a “Continue in wallet” button on a same-device flow. offerDeeplinkQrUri returns a QR code image encoding that deeplink.
{ "id": "clv168twg000227kynam8v96w", "status": "offered", "offerUri": "https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F7d7628cc-8221-4783-a5ce-f0f2b335361f%2Foffers%2Fe5fade58-5145-4b9b-a3bd-7428fbc995b2%3Fraw%3Dtrue", "offerQrUri": "https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F7d7628cc-8221-4783-a5ce-f0f2b335361f%2Foffers%2Fe5fade58-5145-4b9b-a3bd-7428fbc995b2%3Fraw%3Dtrue&qr=true", "offerDeeplinkUri": "openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F7d7628cc-8221-4783-a5ce-f0f2b335361f%2Foffers%2Fe5fade58-5145-4b9b-a3bd-7428fbc995b2%3Fraw%3Dtrue", "offerDeeplinkQrUri": "https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Finvitation%2F7d7628cc-8221-4783-a5ce-f0f2b335361f%2Foffers%2Fe5fade58-5145-4b9b-a3bd-7428fbc995b2%3Fraw%3Dtrue&qr=true&deeplink=true", "credentials": [ { "credentialTemplateId": "<CREDENTIAL_TEMPLATE_ID>", "status": "offered" } ] }

You can use webhooks to get notified of changes in the credential issuance session, and view issuance sessions in the Activity  tab of the dashboard. See Issue credentials for the full issuance flow.

That’s it!

You now know how to verify the PID from the German EUDI Wallet and issue your own attestations into it with Paradym. If you have any suggestions, remarks or questions, reach out to us or join the Paradym Slack . Happy building!

Last updated on