All Docs
FeaturesagentOS Direct DebitUpdated March 13, 2026

Video Verification Capture & Storage

Video Verification Capture & Storage

Introduced in v1.0.22, the video verification step adds a browser-based recording component to the mandate form. It captures a spoken declaration from the tenant and stores the recording as a durable fraud-protection artefact linked to the mandate.


Overview

Video verification is Step 5 of the mandate setup flow. The tenant records themselves making a short spoken declaration and the video is securely uploaded and stored against their mandate record. Letting agents can replay the recording at any time via a signed retrieval URL.


How It Works

1. In-Browser Recording

When the tenant reaches Step 5 of the mandate form, a recording interface is rendered directly in the browser using the browser's native media APIs. No plugins, downloads, or mobile app are required. The tenant:

  1. Grants microphone and camera permission when prompted
  2. Records a short video stating:
    • Their full name
    • The DD amount being authorised
    • The property reference the mandate relates to
  3. Reviews the recording and confirms or re-records before proceeding

2. Presigned URL Upload

Once the tenant confirms their recording, the video is uploaded directly to S3-compatible object storage using a presigned URL:

  • The application server generates a short-lived presigned URL scoped to the mandate
  • The browser uploads the video file directly to object storage using that URL
  • The video payload never transits the application server, reducing bandwidth and processing overhead

3. File Key Stored on Mandate

After a successful upload, the storage file key is persisted on the mandate record. This key is the durable reference to the video object and is used later to generate retrieval URLs.

4. Signed-URL Retrieval

Agents can replay a tenant's verification video through the API. A signed retrieval URL is generated on demand — it is time-limited and grants temporary read access to the stored video object.

See the Video Verification API section below for endpoint details.


API Reference

Generate a Presigned Upload URL

Called server-side during the mandate form flow to initiate the video upload.

POST /mandates/{mandateId}/video-verification/upload-url

Response

{
  "uploadUrl": "https://storage.example.com/...",
  "fileKey": "verifications/{mandateId}/video.webm"
}
FieldDescription
uploadUrlPresigned URL for the browser to PUT the video file directly to object storage
fileKeyThe storage key that will be saved to the mandate record on upload completion

Confirm Upload Complete

Called after the browser finishes uploading, to save the file key to the mandate record.

POST /mandates/{mandateId}/video-verification/confirm

Request Body

{
  "fileKey": "verifications/{mandateId}/video.webm"
}

Response

{
  "mandateId": "mnd_abc123",
  "videoVerified": true
}

Retrieve a Signed Playback URL

Used by letting agents to replay a tenant's verification video from the dashboard.

GET /mandates/{mandateId}/video-verification/url

Response

{
  "url": "https://storage.example.com/verifications/mnd_abc123/video.webm?X-Signature=...",
  "expiresAt": "2025-01-01T12:00:00Z"
}
FieldDescription
urlTime-limited signed URL for video playback
expiresAtISO 8601 timestamp indicating when the URL expires

Note: Signed playback URLs are time-limited. If the URL expires, request a new one by calling this endpoint again.


Security Considerations

  • Presigned upload URLs are scoped to a single mandate and are short-lived. They cannot be used to overwrite other mandate videos.
  • Signed playback URLs are generated on demand and expire automatically. They should not be stored or shared outside of the agent dashboard session.
  • Video objects in object storage should be stored in a private bucket — no public access. All access is mediated through signed URLs.
  • The video file key is stored on the mandate record but raw object-storage credentials are never exposed to the client.

Mandate Form Flow

The video verification step sits within the broader multi-step mandate form:

StepName
1Personal Information
2DD Terms & Conditions
3Payment Details
4Bank Details
5Video Verificationnew
6ID Verification
7Right to Rent (property mandates only)
8Confirmation