Skip to content

feat(openid4vci): add notification endpoint support to issuer2 and wallet2 - #2173

Open
DaevMithran wants to merge 11 commits into
walt-id:mainfrom
DaevMithran:openid4vc-notification
Open

feat(openid4vci): add notification endpoint support to issuer2 and wallet2#2173
DaevMithran wants to merge 11 commits into
walt-id:mainfrom
DaevMithran:openid4vc-notification

Conversation

@DaevMithran

@DaevMithran DaevMithran commented Sep 1, 2026

Copy link
Copy Markdown

Description

Implements the optional OpenID4VCI 1.0 notification functionality in issuer2 and wallet2.

Issuer2 changes:

  • Adds /openid4vci/notification endpoint.
  • Adds notification_id to successful Credential Responses containing credentials.
  • Validates the access token, issuance session and notification ID.
  • Supports credential_accepted, credential_failure and credential_deleted events in notification endpoint.
  • Returns 204 No Content for valid notifications.
  • Returns invalid_notification_request or invalid_notification_id when applicable.
  • Ignores unknown parameters and Handles idempotent repeated requests..
  • Stores the latest notification event and description in the issuance session.
  • Enables the endpoint by default while retaining a configuration flag.

Wallet2 protocol client:

  • Adds NotificationRequestBuilder to waltid-openid4vci-wallet.
  • Sends authenticated notification requests to the issuer.

Wallet2 full issuance flow:

  • Integrates notification delivery into WalletIssuanceHandler.
  • Sends credential_accepted after all returned credentials are stored.
  • Sends credential_failure when credential parsing or storage fails.
  • Skips delivery when the issuer does not advertise an endpoint or return a notification ID.
  • Treats missing notification information as a successful no-op..

Wallet2 isolated fetch-credential flow:

  • Preserves notification_id in FetchCredentialResult.notificationId.
  • With storeInWallet=true, resolves issuer metadata using credentialIssuerBaseUrl.
  • With storeInWallet=false, returns the notification ID without notifying because the wallet has not accepted or stored the credential.
  • Treats missing notification information as a successful no-op..

Type of Change

  • bug fix - change which fixes an issue
  • new feature - change which adds functionality

Checklist

  • code cleanup and self-review
  • unit + e2e test coverage
  • documentation updated accordingly

Breaking

  • OAuth2Provider implementations must now implement the four notification endpoint methods: createNotificationRequest, writeNotificationError overloads, and writeNotificationResponse.

Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 5b1dfb16-9779-42a1-9418-194bc8a27c4d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@DaevMithran
DaevMithran marked this pull request as draft September 1, 2026 05:55
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
@DaevMithran
DaevMithran marked this pull request as ready for review September 1, 2026 07:17
Signed-off-by: DaevMithran <daevmithran1999@gmail.com>
@sonarqubecloud

sonarqubecloud Bot commented Sep 1, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant