Verification Endpoint¶
GET /v1/verify/{receipt_id}
Verify a previously issued receipt. Returns the verification result, the original receipt, and the attestation status.
Request¶
Path Parameters¶
| Parameter | Type | Description |
|---|---|---|
receipt_id |
string |
The receipt ID returned from the inference (e.g., rcpt_f8c505ce3a...) |
Response Format¶
{
"receipt_id": "rcpt_f8c505ce3a7b4d2e9f1a...",
"status": "verified",
"receipt": {
"receipt_id": "rcpt_f8c505ce3a7b4d2e9f1a...",
"routing": "sovereign",
"commitment": "04a7f3c2d8e6b5a9...e9b1d0f",
"signature": "0x69c8a3f7...f98c8",
"verified": true
},
"attestation": {
"integrity": "valid",
"timestamp": "2025-01-15T14:32:00Z",
"settlement": "anchored"
},
"verified_at": "2025-01-15T14:32:05Z"
}
Top-Level Fields¶
| Field | Type | Description |
|---|---|---|
receipt_id |
string |
The receipt that was verified |
status |
string |
Verification result (see below) |
receipt |
object |
The original receipt object |
attestation |
object |
Attestation verification details |
verified_at |
string |
ISO 8601 timestamp of this verification |
Status Values¶
| Status | Meaning |
|---|---|
verified |
All checks passed -- commitment valid, signature valid, attestation intact |
invalid |
One or more checks failed -- receipt may have been tampered with |
not_found |
No receipt exists with this ID |
expired |
Receipt exists but has exceeded the verification window |
Attestation Object¶
| Field | Type | Description |
|---|---|---|
integrity |
string |
Attestation integrity status: valid or tampered |
timestamp |
string |
When the attestation was generated (ISO 8601) |
settlement |
string |
Ledger settlement status: anchored, pending, or unsettled |
Examples¶
import requests
receipt_id = "rcpt_f8c505ce3a7b4d2e9f1a"
response = requests.get(
f"https://six-sov.com/v1/verify/{receipt_id}",
headers={"Authorization": f"Bearer {SIX_API_KEY}"}
)
result = response.json()
if result["status"] == "verified":
print("Receipt is valid and independently verified.")
print(f"Settlement: {result['attestation']['settlement']}")
else:
print(f"Verification failed: {result['status']}")
Verification Flow¶
You SIX
| |
|-- GET /v1/verify/rcpt_... |
| |
| Retrieve receipt |
| Recompute commitment |
| Validate signature |
| Check attestation |
| Check settlement |
| |
|<--- verification result ---|
What is being verified?
The verification endpoint recomputes the cryptographic commitment from the stored receipt fields and validates the signature. If any field was modified after issuance, the recomputed commitment will not match, and verification will fail.
Error Responses¶
| Code | Cause | Response |
|---|---|---|
401 |
Missing or invalid API key | {"error": {"type": "unauthorized"}} |
404 |
Receipt ID does not exist | {"receipt_id": "...", "status": "not_found"} |
429 |
Rate limit exceeded | Standard rate limit response |
Audit Trail Usage¶
For compliance purposes, the verification response is designed to be stored as an audit record:
{
"audit_record": {
"action": "inference_verification",
"receipt_id": "rcpt_f8c505ce3a...",
"status": "verified",
"verified_at": "2025-01-15T14:32:05Z",
"verified_by": "your-system-identifier",
"attestation_integrity": "valid",
"settlement_status": "anchored"
}
}
Compliance Best Practice
Store verification results in your own audit system. This creates an independent record that your organization verified the receipt, not just that SIX claimed it was valid.
Next Steps¶
- Verification Overview -- All verification methods
- Receipt Verification Guide -- Step-by-step walkthrough
- Compliance Guides -- Framework-specific audit requirements