- HTTP request
- Request body
- Response body
- ProofingStatus
- Pending
- Accepted
- Rejected
- Rejection
- EvidenceMismatch
- EvidenceIncomplete
- LowRiskScore
- RecordNotFound
- RecordInvalid
- MaxProvisioningsReached
- RiskCheckFailure
- LivenessCheckFailure
- Challenged
- PhysicalLocationVisit
- IssuerUrlVisit
- AdditionalTimeRequired
- Canceled
- Revoked
- 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 ( |
| Fields | |
|---|---|
requestMetadata |
The metadata about the request, required in all requests. |
deviceReferenceId |
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 |
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 ( |
| Fields | |
|---|---|
responseMetadata |
The metadata about the response, required in all responses. |
proofingStatus |
The current status of the proofing. |
ProofingStatus
An object representing the different statuses a proofing can have.
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field status. A oneof containing the different statuses possible for a proofing. status can be only one of the following: |
|
pending |
A pending status, indicating that the issuer has not yet made a decision. |
accepted |
An accepted status, indicating the issuer accepted the proofing. |
rejected |
A rejected status, indicating the issuer has rejected the proofing. |
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 |
A canceled status, indicating the user has canceled the proofing. |
revoked |
A revoked status, indicating the issuer has revoked the proofing. |
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 ( |
| Fields | |
|---|---|
primaryRejection |
The primary reason why this proofing has a rejected status. |
additionalRejections[] |
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 |
| Fields | |
|---|---|
rejectionDescription |
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 |
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. An oneof between the various reasons a proofing could be rejected. reason can be only one of the following: |
|
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 |
Indicates the proofing was rejected due to incomplete evidence. Examples of use: - Not all required evidence was received by the issuer. |
lowRiskScore |
(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 |
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 |
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 |
Indicates the proofing was rejected due to provisioning the document to the maximum amount of devices allowed. |
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 |
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 |
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 |
A description of the evidence that was incomplete. Used for debug purposes only. |
LowRiskScore
This type has no fields.
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 |
A description of why the record is invalid. |
MaxProvisioningsReached
An object indicating a max provisionings reached rejection.
| JSON representation |
|---|
{ "maxNumberOfProvisioningsAllowed": integer } |
| Fields | |
|---|---|
maxNumberOfProvisioningsAllowed |
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 |
| Fields | |
|---|---|
challengeDescription |
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. An oneof between the various challenges the user may have to complete. challenge can be only one of the following: |
|
physicalLocationVisit |
A challenge where a user must visit a physical location, such as an issuer's office, to complete a challenge. |
issuerUrlVisit |
A challenge option where a user must visit a URL provided by the issuer, and complete a challenge at that URL. |
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 |
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.