All Docs
FeaturesagentOS Direct DebitUpdated March 13, 2026

ID Verification — Stripe Identity Integration

ID Verification — Stripe Identity Integration

Step 6 of the mandate form requires tenants to verify their identity using Stripe Identity. This protects against fraud and provides a verifiable record of identity linked to each Direct Debit mandate.

Overview

When a tenant reaches Step 6 of the mandate form, the service:

  1. Creates a Stripe Identity verification session via the Stripe API.
  2. Redirects the tenant to the Stripe-hosted verification flow.
  3. The tenant completes identity verification by submitting a passport or driving licence.
  4. Stripe processes the document and returns a result.
  5. The service receives the result via a Stripe webhook and updates the mandate record.

Supported Document Types

  • Passport
  • Driving licence

Verification Statuses

Once verification is processed, the mandate is updated with one of the following statuses:

StatusDescription
verifiedIdentity was successfully confirmed by Stripe.
unverifiedVerification was not completed or the document was rejected.
requires_inputAdditional information or a document resubmission is needed.

Mandate Submission Gating

Mandate submission is blocked unless the tenant's verification status is verified. Tenants with a status of unverified or requires_input cannot proceed to the confirmation step until verification is successfully completed.

This check is enforced server-side — it cannot be bypassed by manipulating the form.

Data Stored on the Mandate

The following fields are persisted against the mandate record after ID verification:

FieldTypeDescription
verification_statusenumThe outcome of the Stripe Identity check (verified, unverified, requires_input).
stripe_verification_session_idstringThe unique Stripe session ID for audit and support purposes.

Webhook Integration

Stripe delivers verification results asynchronously via webhook. The service listens for Stripe Identity webhook events and automatically updates the mandate record when a result is received. No polling is required.

Note: Ensure the Stripe webhook secret and API keys are correctly configured in your environment. See the environment variable reference for required keys.

Mandate Form Flow (with ID Verification)

  1. Personal Information
  2. DD Terms & Conditions
  3. Payment Details
  4. Bank Details
  5. Video Verification
  6. ID Verification(Stripe Identity — this step)
  7. Right to Rent (property mandates only)
  8. Confirmation