> For the complete documentation index, see [llms.txt](https://docs.empe.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.empe.io/develop/wallet-server/api-reference/flow.md).

# Flow

## Process QR code content and initiate a credential flow

> Analyzes QR code data and starts either credential issuance or verification process

```json
{"openapi":"3.0.0","info":{"title":"Wallet API","version":"1.0"},"security":[{"oneclick-jwt":[]}],"components":{"securitySchemes":{"oneclick-jwt":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"One-Click access token (Authorization: Bearer <JWT>)"}},"schemas":{"ProcessQrContentDto":{"type":"object","properties":{"qrContent":{"type":"string","description":"QR code content (URL) to process"},"did":{"type":"string","description":"Did of the holder"}},"required":["qrContent","did"]},"ProcessQrContentResponseDto":{"type":"object","properties":{"flowType":{"type":"string","description":"Type of the flow (claim or presentation)","enum":["claim","presentation"]},"data":{"description":"Result of the process","oneOf":[{"$ref":"#/components/schemas/ClaimResponseData"},{"$ref":"#/components/schemas/PresentationResponseData"},{"type":"boolean"}]}},"required":["flowType","data"]},"ClaimResponseData":{"type":"object","properties":{"processId":{"type":"object","description":"Unique identifier for the credential claim process","nullable":true},"status":{"type":"string","description":"Status of the claim process","enum":["initialized","confirmed","failed","expired"]},"offering":{"description":"Credential offering data","nullable":true,"allOf":[{"$ref":"#/components/schemas/OfferingExample"}]},"errorMessage":{"type":"string","description":"Error message - only available if status is failed"}},"required":["processId","status"]},"OfferingExample":{"type":"object","properties":{"credential_type":{"type":"string"},"credential_subject":{"$ref":"#/components/schemas/CredentialSubjectExample"}},"required":["credential_type","credential_subject"]},"CredentialSubjectExample":{"type":"object","properties":{"ticket":{"type":"string"},"seat":{"type":"string"},"description":{"type":"string"}},"required":["ticket","seat","description"]},"PresentationResponseData":{"type":"object","properties":{"processId":{"type":"object","description":"Unique identifier for the credential presentation process","nullable":true},"matchingCredentialIds":{"description":"Matching credential IDs - only available after the credential has been issued","type":"array","items":{"type":"string"}},"matchingCredentials":{"description":"Matching credentials - only available after the credential has been issued","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/VerifiableCredentialExample"}},"status":{"type":"string","description":"Status of the presentation process","enum":["initialized","confirmed","failed","expired"]},"errorMessage":{"type":"string","description":"Error message - only available if status is failed"}},"required":["processId","matchingCredentialIds","status"]},"VerifiableCredentialExample":{"type":"object","properties":{"@context":{"description":"Credential context","type":"array","items":{"type":"string"}},"id":{"type":"string","description":"Credential ID"},"type":{"description":"Credential types","type":"array","items":{"type":"string"}},"issuer":{"description":"Issuer information","allOf":[{"$ref":"#/components/schemas/IssuerExample"}]},"issuanceDate":{"type":"string","description":"Issuance date of the credential"},"credentialSubject":{"description":"Subject data of the credential","allOf":[{"$ref":"#/components/schemas/CredentialSubjectExample"}]}},"required":["@context","id","type","issuer","issuanceDate","credentialSubject"]},"IssuerExample":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}},"paths":{"/flows":{"post":{"description":"Analyzes QR code data and starts either credential issuance or verification process","operationId":"FlowController_processQrContent","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessQrContentDto"}}}},"responses":{"201":{"description":"The credential flow has been successfully initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessQrContentResponseDto"}}}}},"summary":"Process QR code content and initiate a credential flow","tags":["Flow"]}}}}
```

## Confirm a credential claim or presentation

> Completes an initiated credential flow by confirming user selection

```json
{"openapi":"3.0.0","info":{"title":"Wallet API","version":"1.0"},"security":[{"oneclick-jwt":[]}],"components":{"securitySchemes":{"oneclick-jwt":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"One-Click access token (Authorization: Bearer <JWT>)"}},"schemas":{"ConfirmProcessDto":{"type":"object","properties":{"type":{"type":"string","description":"Type of flow (claim or presentation)","enum":["claim","presentation"]},"selectedCredential":{"type":"object","description":"Complete credential object for testing and validation"}},"required":["type","selectedCredential"]},"ConfirmProcessResponseDto":{"type":"object","properties":{"status":{"type":"string","description":"Status of the confirmation","enum":["initialized","confirmed","failed","expired"]},"message":{"type":"string","description":"Message about the confirmation result"},"data":{"description":"Optional data field that contains additional information, such as detailed error data","allOf":[{"$ref":"#/components/schemas/VerifierErrorResponse"}]}},"required":["status","message"]},"VerifierErrorResponse":{"type":"object","properties":{"name":{"type":"string","description":"Error type name"},"value":{"type":"string","description":"Error value or code"},"field":{"type":"string","description":"Field that caused the error, if applicable"},"message":{"type":"string","description":"Detailed error message"}},"required":["name","value","field","message"]}}},"paths":{"/flows/{processId}/confirm":{"post":{"description":"Completes an initiated credential flow by confirming user selection","operationId":"FlowController_confirmProcess","parameters":[{"name":"processId","required":true,"in":"path","description":"The process ID to confirm","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmProcessDto"}}}},"responses":{"200":{"description":"The credential has been successfully confirmed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmProcessResponseDto"}}}}},"summary":"Confirm a credential claim or presentation","tags":["Flow"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.empe.io/develop/wallet-server/api-reference/flow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
