Method: vdc.getProofingStatus

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 (RequestMetadata)
  },
  "deviceReferenceId": string,
  "proofingId": string
}
Fields
requestMetadata

object (RequestMetadata)

The metadata about the request, required in all requests.

deviceReferenceId

string

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

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 (ResponseMetadata)
  },
  "proofingStatus": {
    object (ProofingStatus)
  }
}
Fields
responseMetadata

object (ResponseMetadata)

The metadata about the response, required in all responses.

proofingStatus

object (ProofingStatus)

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 (Pending)
  },
  "accepted": {
    object (Accepted)
  },
  "rejected": {
    object (Rejected)
  },
  "challenged": {
    object (Challenged)
  },
  "canceled": {
    object (Canceled)
  },
  "revoked": {
    object (Revoked)
  },
  "expired": {
    object (Expired)
  }
  // End of list of possible types for union field status.
}
Fields
Union field status. A oneof containing the different statuses possible for a proofing. status can be only one of the following:
pending

object (Pending)

A pending status, indicating that the issuer has not yet made a decision.

accepted

object (Accepted)

An accepted status, indicating the issuer accepted the proofing.

rejected

object (Rejected)

A rejected status, indicating the issuer has rejected the proofing.

challenged

object (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 (Canceled)

A canceled status, indicating the user has canceled the proofing.

revoked

object (Revoked)

A revoked status, indicating the issuer has revoked the proofing.

expired

object (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 (Rejection)
  },
  "additionalRejections": [
    {
      object (Rejection)
    }
  ]
}
Fields
primaryRejection

object (Rejection)

The primary reason why this proofing has a rejected status.

additionalRejections[]

object (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 (EvidenceMismatch)
  },
  "evidenceIncomplete": {
    object (EvidenceIncomplete)
  },
  "lowRiskScore": {
    object (LowRiskScore)
  },
  "recordNotFound": {
    object (RecordNotFound)
  },
  "recordInvalid": {
    object (RecordInvalid)
  },
  "maxProvisioningsReached": {
    object (MaxProvisioningsReached)
  },
  "riskCheckFailure": {
    object (RiskCheckFailure)
  },
  "livenessCheckFailure": {
    object (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. An oneof between the various reasons a proofing could be rejected. reason can be only one of the following:
evidenceMismatch

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

object (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 (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 (MaxProvisioningsReached)

Indicates the proofing was rejected due to provisioning the document to the maximum amount of devices allowed.

riskCheckFailure

object (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 (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.

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 (PhysicalLocationVisit)
  },
  "issuerUrlVisit": {
    object (IssuerUrlVisit)
  },
  "additionalTimeRequired": {
    object (AdditionalTimeRequired)
  }
  // End of list of possible types for union field challenge.
}
Fields
challengeDescription

string

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

object (PhysicalLocationVisit)

A challenge where a user must visit a physical location, such as an issuer's office, to complete a challenge.

issuerUrlVisit

object (IssuerUrlVisit)

A challenge option where a user must visit a URL provided by the issuer, and complete a challenge at that URL.

additionalTimeRequired

object (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 (int64 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.