- [HTTP request](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#body.request_body)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#body.response_body)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#body.GetProofingStatusResponse.SCHEMA_REPRESENTATION)
- [ProofingStatus](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#ProofingStatus)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#ProofingStatus.SCHEMA_REPRESENTATION)
- [Pending](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Pending)
- [Accepted](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Accepted)
- [Rejected](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejected)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejected.SCHEMA_REPRESENTATION)
- [Rejection](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejection)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejection.SCHEMA_REPRESENTATION)
- [EvidenceMismatch](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceMismatch)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceMismatch.SCHEMA_REPRESENTATION)
- [EvidenceIncomplete](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceIncomplete)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceIncomplete.SCHEMA_REPRESENTATION)
- [LowRiskScore](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#LowRiskScore)
- [RecordNotFound](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordNotFound)
- [RecordInvalid](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordInvalid)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordInvalid.SCHEMA_REPRESENTATION)
- [MaxProvisioningsReached](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#MaxProvisioningsReached)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#MaxProvisioningsReached.SCHEMA_REPRESENTATION)
- [RiskCheckFailure](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RiskCheckFailure)
- [LivenessCheckFailure](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#LivenessCheckFailure)
- [Challenged](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Challenged)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Challenged.SCHEMA_REPRESENTATION)
- [PhysicalLocationVisit](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#PhysicalLocationVisit)
- [IssuerUrlVisit](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#IssuerUrlVisit)
- [AdditionalTimeRequired](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#AdditionalTimeRequired)
  - [JSON representation](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#AdditionalTimeRequired.SCHEMA_REPRESENTATION)
- [Canceled](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Canceled)
- [Revoked](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Revoked)
- [Expired](https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Expired)

An endpoint to retrieve the current status of a proofing.

### HTTP request

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

### 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 } ``` |

| 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 |

### Response body

A response containing the current status of a proofing.

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`) }, "proofingStatus": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#ProofingStatus`) } } ``` |

| 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. |
| `proofingStatus` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#ProofingStatus`)`` Required. The current status of the proofing. |

## ProofingStatus

An object representing the different statuses a proofing can have.

| JSON representation |
|---|
| ``` { // Union field `status` can be only one of the following: "pending": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Pending`) }, "accepted": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Accepted`) }, "rejected": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejected`) }, "challenged": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Challenged`) }, "canceled": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Canceled`) }, "revoked": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Revoked`) }, "expired": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Expired`) } // End of list of possible types for union field `status`. } ``` |

| Fields ||
|---|---|
| Union field `status`. Required. A oneof containing the different statuses possible for a proofing. `status` can be only one of the following: ||
| `pending` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Pending`)`` A pending status, indicating that the issuer has not yet made a decision. |
| `accepted` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Accepted`)`` An accepted status, indicating the issuer accepted the proofing. |
| `rejected` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejected`)`` A rejected status, indicating the issuer has rejected the proofing. |
| `challenged` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Challenged`)`` A challenged status, indicating the issuer would like the user to complete a challenge before the issuer makes a decision on the proofing. |
| `canceled` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Canceled`)`` A canceled status, indicating the user has canceled the proofing. |
| `revoked` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Revoked`)`` A revoked status, indicating the issuer has revoked the proofing. |
| `expired` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Expired`)`` An expired status, indicating the proofing did not have a decision made (likely due to a challenge not being completed) before a deadline, set by the issuer. |

## Pending

This type has no fields.
An object representing a pending status. This message is intentionally empty right now. New fields could be added in the future.

## Accepted

This type has no fields.
An object representing an accepted proofing status.

## Rejected

An object representing a rejected proofing status.

| JSON representation |
|---|
| ``` { "primaryRejection": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejection`) }, "additionalRejections": [ { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejection`) } ] } ``` |

| Fields ||
|---|---|
| `primaryRejection` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejection`)`` The primary reason why this proofing has a rejected status. |
| `additionalRejections[]` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#Rejection`)`` Additional reasons, if they exist, why the proofing has a rejected status. |

## Rejection

An object containing details about a specific rejection reason, that lead to a proofing having a rejected status.

| JSON representation |
|---|
| ``` { "rejectionDescription": string, "issuerRejectionIdentifier": string, // Union field `reason` can be only one of the following: "evidenceMismatch": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceMismatch`) }, "evidenceIncomplete": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceIncomplete`) }, "lowRiskScore": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#LowRiskScore`) }, "recordNotFound": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordNotFound`) }, "recordInvalid": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordInvalid`) }, "maxProvisioningsReached": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#MaxProvisioningsReached`) }, "riskCheckFailure": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RiskCheckFailure`) }, "livenessCheckFailure": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#LivenessCheckFailure`) } // End of list of possible types for union field `reason`. } ``` |

| Fields ||
|---|---|
| `rejectionDescription` | `string` A description of this rejection for support reps to debug. Note that this is never shown to users. It can contain descriptive, non-sensitive text used for debugging. Warning: Do not include any PII in this message. |
| `issuerRejectionIdentifier` | `string` This identifier is specific to the issuer and is generated by the issuer. It is used for debugging purposes only in order to identify the rejection. This is the identifier that the issuer knows this rejection by. |
| Union field `reason`. Required. An oneof between the various reasons a proofing could be rejected. `reason` can be only one of the following: ||
| `evidenceMismatch` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceMismatch`)`` Indicates the proofing was rejected due to an evidence mismatch. Examples of use: - Mismatch of app captured selfie and image in issuer's system. - Mismatch of app capture document image and image in issuer's system. |
| `evidenceIncomplete` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#EvidenceIncomplete`)`` Indicates the proofing was rejected due to incomplete evidence. Examples of use: - Not all required evidence was received by the issuer. |
| `lowRiskScore (deprecated)` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#LowRiskScore`)`` > [!WARNING] > This item is deprecated! (DEPRECATED: use riskCheckFailure or livenessCheckFailure accordingly) Indicates the proofing was rejected due to a low risk score. Examples of use: - The wallet provided risk score is low. - The issuer has locked this user due to repeated failed attempts. |
| `recordNotFound` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordNotFound`)`` Indicates the proofing was rejected due to the record not existing in the issuer's system. Examples of use: - The record is not found in the issuer's system. - A specific record is opted out. |
| `recordInvalid` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RecordInvalid`)`` Indicates the proofing was rejected due to the record in the issuer's system being in an invalid state. Examples of use: - The record is in a canceled state. - The record is expired. |
| `maxProvisioningsReached` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#MaxProvisioningsReached`)`` Indicates the proofing was rejected due to provisioning the document to the maximum amount of devices allowed. |
| `riskCheckFailure` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#RiskCheckFailure`)`` Indicates the proofing was rejected due to risk score check failure. Examples of use: - The wallet provided risk score is high, which represents a high risk of fraud. - The issuer evaluates the request has a high risk of fraud. |
| `livenessCheckFailure` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#LivenessCheckFailure`)`` Indicates the proofing was rejected due to liveness check failure. Examples of use: - The wallet provided liveness score is low. |

## EvidenceMismatch

An object indicating an evidence mismatch rejection.

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

| Fields ||
|---|---|
| `evidenceType` | `string` A description of the evidence that was mismatched. Used for debug purposes only. |

## EvidenceIncomplete

An object indicating an evidence incomplete rejection.

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

| Fields ||
|---|---|
| `evidenceType` | `string` A description of the evidence that was incomplete. Used for debug purposes only. |

## LowRiskScore

This type has no fields.

> [!WARNING]
> This item is deprecated!

An object indicating a low risk score rejection. This message is intentionally empty right now. New fields could be added in the future.

## RecordNotFound

This type has no fields.
An object indicating a record not found rejection. This message is intentionally empty right now. New fields could be added in the future.

## RecordInvalid

An object indicating an invalid record rejection.

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

| Fields ||
|---|---|
| `invalidityReason` | `string` A description of why the record is invalid. |

## MaxProvisioningsReached

An object indicating a max provisionings reached rejection.

| JSON representation |
|---|
| ``` { "maxNumberOfProvisioningsAllowed": integer } ``` |

| Fields ||
|---|---|
| `maxNumberOfProvisioningsAllowed` | `integer` The max number of provisionings allowed, as set by the issuer's policy. |

## RiskCheckFailure

This type has no fields.
An object indicating a risk check failure rejection. This message is intentionally empty right now. New fields could be added in the future.

## LivenessCheckFailure

This type has no fields.
An object indicating a liveness check failure rejection. This message is intentionally empty right now. New fields could be added in the future.

## Challenged

An object representing a challenged proofing status.

| JSON representation |
|---|
| ``` { "challengeDescription": string, // Union field `challenge` can be only one of the following: "physicalLocationVisit": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#PhysicalLocationVisit`) }, "issuerUrlVisit": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#IssuerUrlVisit`) }, "additionalTimeRequired": { object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#AdditionalTimeRequired`) } // End of list of possible types for union field `challenge`. } ``` |

| Fields ||
|---|---|
| `challengeDescription` | `string` Required. A description of the challenge for support reps to debug. Note that this is never shown to users. It can contain descriptive, non-sensitive text used for debugging. Warning: Do not include any PII in this message. |
| Union field `challenge`. Required. An oneof between the various challenges the user may have to complete. `challenge` can be only one of the following: ||
| `physicalLocationVisit` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#PhysicalLocationVisit`)`` A challenge where a user must visit a physical location, such as an issuer's office, to complete a challenge. |
| `issuerUrlVisit` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#IssuerUrlVisit`)`` A challenge option where a user must visit a URL provided by the issuer, and complete a challenge at that URL. |
| `additionalTimeRequired` | ``object (`https://developers.google.com/wallet/identity/provisioning/api-reference/issuer-hosted/rest/v1/vdc/getProofingStatus#AdditionalTimeRequired`)`` A challenge option where some more time is needed for reviewing this proofing. |

## PhysicalLocationVisit

This type has no fields.
An object representing the challenge option where a user must visit a physical location, such as an issuer's office, to complete a challenge. This challenge is out of band of Google. For security reasons, if the issuer is supporting this challenge type, they must provide the location details to Google during onboarding.

## IssuerUrlVisit

This type has no fields.
An object representing the challenge option where a user must visit a URL provided by the issuer, and complete a challenge at that URL. This challenge is out of band of Google. For security reasons, if the issuer is supporting this challenge type, they must provide the URL to Google during onboarding.

## AdditionalTimeRequired

An object representing the challenge option where addition time is required to review the proofing. The estimated completion time can optionally be provided.

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

| Fields ||
|---|---|
| `estimatedCompletion` | `string (https://developers.google.com/discovery/v1/type-format format)` The estimated time at which the proofing will be completed. the review if available. The format is a timestamp and the timestamp is represented as the number of milliseconds since the Unix epoch. |

## Canceled

This type has no fields.
An object representing a canceled proofing status. This message is intentionally empty right now. New fields could be added in the future.

## Revoked

This type has no fields.
An object representing a revoked proofing status. This message is intentionally empty right now. New fields could be added in the future.

## Expired

This type has no fields.
An object representing an expired proofing status. This message is intentionally empty right now. New fields could be added in the future.