- [HTTP request](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#body.request_body)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#body.response_body)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#body.ProofUserResponse.SCHEMA_REPRESENTATION)
- [ProofingEvidence](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ProofingEvidence)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ProofingEvidence.SCHEMA_REPRESENTATION)
- [Evidence](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#Evidence)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#Evidence.SCHEMA_REPRESENTATION)
- [ReverificationContext](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ReverificationContext)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ReverificationContext.SCHEMA_REPRESENTATION)

An endpoint to proof a user for a digital credential, using an issuer specified list of evidences, and for a specific device.

### HTTP request

`POST https://example.issuer.com/api/v1/vdc/proofUser`

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requestMetadata": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/RequestMetadata`) }, "deviceReferenceId": string, "proofingId": string, "evidence": [ { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ProofingEvidence`) } ], // Union field `proofing_context` can be only one of the following: "reverificationContext": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ReverificationContext`) } // End of list of possible types for union field `proofing_context`. } ``` |

| Fields ||
|---|---|
| `requestMetadata` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/RequestMetadata`)`` Required. The metadata about the request, required in all requests. |
| `deviceReferenceId` | `string` Required. The id that corresponds to the device and the identity key associated with the device. This is NOT a device id, meaning that if the user were to have two separate credentials on the same device, this id would differ between them. This id is supplied in all requests, and can be used to correlate requests. |
| `proofingId` | `string` Required. An opaque identifier representing a proofing with a specific bundle of evidence, for a specific device. Ex: UUID |
| `evidence[]` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ProofingEvidence`)`` Required. The list of evidences needed to proof a user for a digital credential. |
| Union field `proofing_context`. The context for proofing. Empty for the initial proofing. `proofing_context` can be only one of the following: ||
| `reverificationContext` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#ReverificationContext`)`` The context for reverification proofing. |

### Response body

An acknowledgement to a request to proof a user for a digital credential, that indicates the proofing is now being processed.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "responseMetadata": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/ResponseMetadata`) }, "proofingId": string } ``` |

| Fields ||
|---|---|
| `responseMetadata` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/ResponseMetadata`)`` Required. The metadata about the response, required in all responses. |
| `proofingId` | `string` Required. The opaque identifier representing a proofing with a specific bundle of evidence, for a specific device. This is the same proof ID that was sent in the request. |

## ProofingEvidence

An object that represents a single piece of evidence.

| JSON representation |
|---|
| ``` { // Union field `evidence_type` can be only one of the following: "preAuthorizationCode": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#Evidence`) } // End of list of possible types for union field `evidence_type`. } ``` |

| Fields ||
|---|---|
| Union field `evidence_type`. Required. An oneof indicating how the evidence is being presented. `evidence_type` can be only one of the following: ||
| `preAuthorizationCode` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/proofUser#Evidence`)`` Pre-authorization code sent from the issuer. |

## Evidence

An object that represents a single piece of evidence.

| JSON representation |
|---|
| ``` { // Union field `presencetype` can be only one of the following: "encryptedData": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/EncryptedData`) }, "unencryptedValue": string, "unencryptedInteger": integer // End of list of possible types for union field `presencetype`. } ``` |

| Fields ||
|---|---|
| Union field `presencetype`. Required. An oneof indicating how the evidence is being presented. `presencetype` can be only one of the following: ||
| `encryptedData` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/EncryptedData`)`` The encrypted value and encryption metadata necessary to decrypt the value. |
| `unencryptedValue` | `string` The base64 encoded value of the evidence. |
| `unencryptedInteger` | `integer` Integer value of the evidence. |

## ReverificationContext

The context required to trigger reverification for the credential.

| JSON representation |
|---|
| ``` { "credentialId": string } ``` |

| Fields ||
|---|---|
| `credentialId` | `string` Required. The credential id that the reverification is performed on. |