Skip to main content
Dashboard and MCP
  • Resubmission insights count people, not verifications. The dashboard card and the resubmission part of the MCP get-verification-stats now merge a person’s verifications by external_id within a workspace, and count each person once, on the day of their final outcome. Someone declined on one link and approved on the next is one approval on the 2nd attempt, on the day of the approval, and no longer a decline plus a first-attempt approval. A new verification after an approval starts a new count of its own, and verifications without an external_id are counted one by one. The response keys are unchanged, volume stays per verification, and the MCP legend has a new person entry.
API
  • DOCUMENT_PORTRAIT_NOT_FOUND on a document front upload. A front image with no photo of the holder on it, such as a closed passport cover or the back of a card, is now refused at upload with 422 and this code, instead of failing later in the verification. Ask the person to retake the document photo. Not sent for every workspace; handle it like the other upload codes in Error handling.
Billing
  • The 500 free verifications no longer expire after 15 days. They are used before your card is charged, and there is no monthly minimum while any are left or in a month that used them. Your administrators get an email when 100, 30 and 0 are left. See Pricing.
API
  • issuing_subdivision in the document result. issuing_subdivision in document is the state or province that issued the document, as a bare code right after issuing_country (for example FL with US), or null. Today it is filled for US driving licences and ID cards. It is on every workspace, in GET /v1/verifications/{id}/document, in the webhook document and in the MCP list-verifications document, and it is kept after erasure. See Reading results.
  • SDK releases to match: @proofage/node 0.11.0, proofage (Python) 0.6.0, proofage/php-sdk 0.6.0 and proofage/laravel-client 0.9.6.
API
  • address in the document result, on identity (KYC) workspaces only. GET /v1/verifications/{id}/document now returns address in fields: the printed text as read, trimmed, null when empty, not parsed and not normalised. It may contain line breaks. fields carries eleven keys on KYC workspaces, seven of them KYC-only. Age workspaces do not receive address.
  • The decision webhook carries document. Every decision webhook now has the same document object as GET /v1/verifications/{id}/document, without the images: type, issuing_country and fields, with eleven fields on identity (KYC) workspaces and four on age workspaces. It is present on every status and is all null when nothing was read, and on test workspaces. A resend or a manual retry carries the document as it is now; an automatic retry carries the body as first sent. Stored webhook bodies in your logs now hold the person’s name and birth date until erasure. If your handler validates the body with a strict schema, allow the new key. See Webhooks.
  • nationality is published only when the document itself states it.
  • MCP list-webhook-deliveries returns the last attempt’s request_body only with include_payload: true, like payload.
  • Erasure covers every stored copy of a webhook body. The copy of the body kept with each delivery attempt, and what a receiver answered, are now erased with the rest of the person’s data, and an erasure that lands while a delivery is in flight is no longer undone.
  • gender can be X. F, M or X, where X means the document states that the sex is unspecified.
  • SDK releases to match: @proofage/node 0.10.0, proofage (Python) 0.5.0, proofage/php-sdk 0.5.0 and proofage/laravel-client 0.9.5. They type address and the webhook document, both optional. See Reading results and Data models.