Skip to main content
PropFlow AI
Self-managing landlord

Upload your first compliance certificate

Updated 2026-05-15

Before you start

  • The certificate file — PDF preferred, but JPEG / PNG / WebP work too.
  • Make sure every page is legible (signature, dates, certificate number visible).
  • Maximum file size: 20 MB.

Step 1: Open the property's compliance view

  1. From the left nav, click Properties.
  2. Click the property you want to add a certificate to.
  3. Click the Compliance tab.

You'll see every obligation that applies to this property — Gas, EICR, EPC, etc. Each row shows the current status (red / amber / green / grey) and an action button.

Step 2: Upload the file

  1. Find the obligation you want to satisfy — e.g. Gas Safety.
  2. Click Upload.
  3. Pick your file from your computer or phone.

What PropFlow checks

  • File extension — must be PDF, JPEG, PNG, or WebP. Some installations also accept HEIC, HEIF, and TIFF.
  • Magic bytes — PropFlow inspects the file's actual content with libmagic, not just the extension. Renaming virus.exe to certificate.pdf fails the check with: "File content does not match the declared file type."
  • Size — under 20 MB.

Step 3: Confirm the dates

For PDFs and images, PropFlow uses Claude's vision model to read the dates off the certificate. You'll see pre-filled fields:

  • Issue date — when the certificate was signed off by the engineer.
  • Expiry date — when the certificate is no longer valid. For Gas Safety, this is typically 12 months after issue.
  • Certificate number — the engineer's reference / serial number, where extracted.

Always sanity-check what was extracted. OCR is good but not perfect — smudged scans, handwritten dates, or unusual layouts can confuse it. Edit the fields if anything's wrong.

Step 4: Submit

Click Save (or Upload certificate). PropFlow:

  • Stores the file in your organisation's private documents bucket (Supabase Storage). The path is {org_id}/{property_id}/{document_type}/{file_id}_{filename}. Access is via signed URL, not public.
  • Links the document to the compliance obligation.
  • Sets the obligation's status to Compliant (green) and updates its last_completed to today's date in Europe/London time.
  • Recomputes the deadline from the expiry date you confirmed.
  • Resets the reminder counter so the new renewal cycle starts from zero.
  • Writes an audit-log row capturing who uploaded the certificate and when.

The obligation row's coloured dot flips from grey (or red) to green as soon as the upload completes — no refresh needed.

Same pattern for every obligation

The upload flow is the same regardless of certificate type — Gas Safety, EICR, EPC, PAT, Fire Risk Assessment, Legionella, etc. The only differences:

  • The default renewal period (Gas = 12 months, EICR = 5 years, EPC = 10 years, etc.). PropFlow knows these and pre-fills the expiry date if you only provide the issue date.
  • Event-based obligations (Tenancy Deposit Protection, How to Rent guide) don't have an expiry — they go green once the document is in.

If something goes wrong

  • "File content does not match the declared file type." — your file is actually a different format than its extension suggests. Re-save the file from its source application (e.g. re-export from your PDF reader) and try again.
  • "File exceeds 20 MB limit." — compress the PDF. Most PDF editors have a "Reduce file size" option. Online tools also work.
  • "Failed to extract dates" — OCR couldn't read the certificate. Fill in the issue and expiry dates manually.
  • Upload completes but status doesn't change — refresh the page. If still stuck, contact support.

Next steps

FAQ

What if my certificate is a photo on my phone?
Fine — PropFlow accepts JPEG, PNG, and WebP. Just make sure every page is legible and the engineer's signature, expiry date, and certificate number are clearly visible. For multi-page certificates, a single PDF is better than multiple photos.
Does PropFlow read the dates off the certificate?
Yes, for PDF and image uploads PropFlow tries to extract the issue date and expiry date automatically using Claude's vision model. You'll see the extracted dates pre-filled but can override them. Always sanity-check what was extracted — OCR isn't perfect on smudged scans.
What happens to the deadline after I upload?
If you provide an expiry date (or PropFlow extracts one), the deadline updates to that date. If the obligation has a default renewal period (e.g. Gas Safety = 12 months) and you provide only an issue date, PropFlow computes the deadline as issue date + period.
Can I upload multiple certificates for the same obligation?
Each obligation holds one 'current' certificate at a time. When you upload a new one to an obligation that already has a certificate, the old certificate is archived (not deleted) — see Replace an expiring certificate for the renewal flow.

Ready to do this now?

Opens the relevant page in your PropFlow account.

Open compliance

Back to Self-managing landlord