Verification API
Verification routes are public unless stated otherwise.
Verify a bundle
POST /v1/iso/verify
Content-Type: application/json
{
"bundle_url": "https://app.proofrails.com/files/<receipt_id>/evidence.zip",
"bundle_hash": "0xOPTIONAL_EXPECTED_HASH",
"txid": "0xOPTIONAL_ANCHOR_TRANSACTION"
}
At least one supported locator must be supplied. The response includes:
{
"matches_onchain": true,
"bundle_hash": "0x...",
"flare_txid": "0x...",
"anchored_at": "2026-07-29T10:13:26Z",
"errors": []
}
Treat a non-empty errors array as incomplete verification even if another field is truthy.
Verify a content-addressed bundle
POST /v1/iso/verify-cid
This route resolves the supplied content identifier through configured storage and applies the verifier. Availability depends on the hosted storage configuration.
Confirm a tenant-submitted anchor
POST /v1/iso/confirm-anchor
X-API-Key: <project-admin-key>
This route is for projects configured for tenant anchoring. It checks the transaction against the project's chain and EvidenceAnchor address before marking the receipt anchored.
Independent authority
The service response is convenient, but a high-assurance verifier should independently download the current ZIP, check its SHA-256 and manifest signature, fetch the Flare transaction receipt, require successful execution, require the expected EvidenceAnchor address and compare the decoded event hash.
If an anchor lookup is unavailable, do not interpret that operational condition as a successful onchain match.