Retention & isolation
Raw payment proof is disposable. Verdicts and fingerprints are durable. Untrusted files never run on the API host.
Raw file lifetime
24h
Hard delete, no archive
Verdict history
90d
Then aggregated only
Off-site copies
0
Single region, no replication
PDF sandbox
Docker
Unprivileged, no network
Data lifecycle
Each stage has a fixed maximum and an audit entry.
Receive
Raw file written to an encrypted bucket with a random object key.
Fingerprint
SHA-256 and perceptual hash stored. OCR fields extracted in memory.
Decide
Verdict stored without the file. The response links to the check row.
Purge
Object overwritten and pointer removed by the retention worker.
Aggregate
Check detail is rolled into seller-level counts and fraud trends.
Incident hold
Confirmed fraud cases keep metadata only, never the raw document.
Sandboxed parsing
PDFs are the highest-risk upload. They are opened outside the API process.
Parsing failures are returned as 422 unreadable_document and never reach OCR.
Purge policy
Applies to every file, regardless of verdict.
Purge log
Proof that deletion actually ran. Every row includes the object key and result.
| Run | Started | Scanned | Deleted | Failed | Duration | Result |
|---|---|---|---|---|---|---|
| PRG-4412 | Today 10:15 | 8 | 8 | 0 | 1.4s | Complete |
| PRG-4411 | Today 10:00 | 11 | 11 | 0 | 1.9s | Complete |
| PRG-4410 | Today 09:45 | 9 | 9 | 0 | 1.2s | Complete |
| PRG-4409 | Today 09:30 | 7 | 7 | 0 | 1.1s | Complete |
| PRG-4408 | Today 09:15 | 12 | 11 | 1 | 2.6s | Retried |
| PRG-4407 | Today 09:00 | 9 | 9 | 0 | 1.5s | Complete |