Transactions API · £1.99 a person · no plan needed
Identity verification API
Send a person a link from your product. On their phone they photograph their passport or photo driving licence and record a short selfie video, about 3 minutes, through an identity service certified under the UK digital identity trust framework and listed on the GOV.UK register. You get the result by webhook, the identity service’s PDF report, and the check recorded on the job’s signed certificate.
£1.99 a person, taken from your prepaid credit when the link is made and given back if they never finish. No monthly plan. Tenants in England can do their ID and their right to rent in the same link for £3.49: the Right to Rent check API.
1. A job and the person
curl -X POST "https://api.stratumapis.com/v1/transactions" \
-H "X-Stratum-Key: $STRATUM_KEY" -H "content-type: application/json" \
-d '{ "type": "finance", "preset": "id" }'
curl -X PATCH "https://api.stratumapis.com/v1/transactions/$TXN" \
-H "X-Stratum-Key: $STRATUM_KEY" -H "content-type: application/json" \
-d '{ "parties": [{ "partyId": "client-1", "role": "client", "kind": "individual", "name": "Jane Doe", "dob": "1990-01-01" }] }'preset: "id" opens a sale, letting or finance job with the ID check ticked and done by link, alongside the checks the law requires and recommends for that job. Add the people with your own partyId, so you can find them again. Sending a link charges only the ID check; the other ticked checks run, and are charged, only when you call POST /v1/transactions/{id}/run (see them priced with GET .../quote first, and the prices on the pricing page).
2. Send the link
curl -X POST "https://api.stratumapis.com/v1/transactions/$TXN/digital-id" \
-H "X-Stratum-Key: $STRATUM_KEY" -H "content-type: application/json" \
-d '{ "partyId": "client-1", "email": "jane@example.com" }'{
"ok": true,
"digitalId": {
"requestId": "9f3c1a7e5b2d4c6e8a0b1d2f",
"partyId": "client-1",
"kind": "id",
"status": "waiting",
"startUrl": "https://stratumapis.com/id/9f3c1a7e5b2d4c6e8a0b1d2f",
"expiresAt": "2026-10-26T10:00:00.000Z",
"chargedPence": 199
}
}Send startUrl to the person from your own product (email, SMS, your app). We don’t email them: the start page names your firm (set it once with PUT /v1/transactions/firm), says what to have ready, then hands over to the identity service, which may send them reminders. A link works for 7 days. A second call for the same person while a link is waiting returns that link and charges nothing.
3. The result
{
"type": "digital_id.updated",
"data": {
"transactionId": "66896064-bf43-4359-839f-62b4353c3e0e",
"requestId": "9f3c1a7e5b2d4c6e8a0b1d2f",
"partyId": "client-1",
"kind": "id",
"status": "verified",
"outcome": {
"document": { "type": "passport", "issuingCountry": "GBR", "expiryDate": "2030-01-01", "numberEnd": "6789" },
"identityProfile": "M1A",
"selfie": "pass",
"reasons": [],
"checkedAt": "2026-10-19T10:04:12.000Z"
},
"reportAvailable": true,
"chargedPence": 199,
"refunded": false
}
}Register a webhook (PUT /v1/webhooks) and each change of status arrives as digital_id.updated, signed. Or ask: GET /v1/transactions/{id}/digital-id, and POST .../digital-id/{requestId}/refresh to read the identity service now.
verified: the document is genuine, the selfie matches it and is live. Recorded on the job.review: something to look at, inoutcome.reasons(a nickname, a typing error in the name). Read the report and accept it with a note:POST .../accept.expired,cancelled,locked_outorblocked: nothing was checked, and the charge goes back to your credit.
4. The report and the record
GET .../digital-id/{requestId}/report answers with a 5-minute download link to the identity service’s PDF report. We keep it for 5 years after the job is marked complete (6 years after the check if it never is), the period the Money Laundering Regulations ask for; delete it earlier once you’ve filed your own copy (POST .../report/delete). The check also appears on the job’s certificate, which anyone can verify at stratumapis.com/verify.
Testing
With a test key, links are made in the identity service’s sandbox: nothing is charged and nobody is contacted. A sandbox link can’t check a real person, so it stays waiting until you cancel it or it expires; the shapes above are what a live check returns.
What the law asks
- Firms in the regulated sector must verify a customer’s identity on reliable, independent sources before taking them on, and electronic verification is one of them; your risk assessment decides what is enough (Money Laundering Regulations 2017, regulation 28).
- Records of the checks are kept for 5 years after the business relationship ends (regulation 40).
- The checks are run by Vouchsafe, on the GOV.UK register of digital verification services.
Read more
- The transactions API docs: every route, field and status, and the OpenAPI file.
- The Right to Rent check API: ID and right to rent for tenants in England in one link.
- For people rather than code, the same check is on Certaby.