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
- From the left nav, click Properties.
- Click the property you want to add a certificate to.
- 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
- Find the obligation you want to satisfy — e.g. Gas Safety.
- Click Upload.
- 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
statusto Compliant (green) and updates itslast_completedto 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
- Replace an expiring certificate — the renewal flow, slightly different from first upload.
- The compliance dashboard explained — what the colours and counts mean.
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.