Skip to main content

Stream verification status (SSE)

GET 

/v3/config/digital-wallet/openid/notifications/presentation-status/sse

Streams the status of one verification request over Server-Sent Events. The server sends the current status at once, then a frame for each change, and it ends the stream after a final status. Use it to show a live status while the holder answers the request, for example a Digital Credentials API request.

Authentication​

Send the Authorization header (ApiKey <key> or Bearer <token>). The browser EventSource API cannot set request headers: get a one-time ticket with POST /v2/config/sse-ticket (body {"path": "/v3/config/digital-wallet/openid/notifications/presentation-status/sse"}) and put it in the ticket query parameter.

Response headers​

Content-Type: text/event-stream, Cache-Control: no-cache.

Frames that the server writes​

  1. retry: 30000 - the server writes this frame first. 2. One unnamed event (a data line, no event line) with the current status, at once. 3. One unnamed event for each change of the status. 4. : keep-alive - an SSE comment line every 15 seconds. It carries no event, and clients ignore it.

The data field holds a JSON object with verificationId (the value of the query parameter), status and, for failed and expired, reason. The frames have no id field: a client that connects again gets the current status in the first frame.

Statuses​

| status | Meaning | reason | | --- | --- | --- | | pending | The request is sent and has no answer yet. | - | | received | The holder sent a presentation and it is valid. Final. | - | | failed | The holder sent a presentation that is not valid, or an error. Final. | The message of the first failed check (a wallet error as <error>: <description>), else Presentation is not valid. | | expired | The request expired before an answer. Final. | Presentation request expired |

A request expires at the exp of the stored request object, else at its creation time plus presentationRequestExpiresIn of the verifier global configuration (default 3600 seconds).

End of the stream​

The server ends the stream after it sends a final status (received, failed or expired), after 3900 seconds, or when the client closes the connection. Errors before the stream (an unknown verification request, too many open streams) come as a JSON answer with a 4xx or 5xx status, not as a frame.

Request​

Query Parameters

    verificationId uuidrequired

    Identifier of the verification request (the presentationExchangeId of the verification history).

    ticket stringrequired

    One-time ticket for a client that cannot send the Authorization header, for example the browser EventSource API. Get the ticket with POST /v2/config/sse-ticket, sent with the Authorization header and the body {"path": "/v3/config/digital-wallet/openid/notifications/presentation-status/sse"}. The ticket is valid for 30 seconds and for one request to this path. An unknown, used or expired ticket gives 401. A request with the Authorization header needs no ticket.

Responses​

The server opened the Server-Sent Events stream. The stream ends after a final status.

Response Headers
  • Cache-Control string

    The server always sends no-cache.

Schema

    string

Loading...