cancellation_ref. Crucially, the mandate_ref it binds is exactly the same mandate_ref Payment Mandate (lite) produces and Spend Guardrail (lite) binds, so the cancellation composes onto the open pre-payment decision chain and closes the lifecycle on the authority side. It is strictly additive over the frozen Layer 1: no new cryptographic primitive, the same RFC 8785 JCS + SHA-256.
Apache-2.0 open source. Install via
pip install algovoi-cancellation-receipt-lite or npm install @algovoi/cancellation-receipt-lite. Python and TypeScript are byte-for-byte identical on the same input. This is the lite tier, content-addressed with no signature; the commercial Cancellation Receipt issues Falcon-1024 post-quantum signed receipts with effective-from timing, provider and jurisdiction, and propagates the cancellation across the settlement and retention chains.How it works
One reference, computed with RFC 8785 JCS canonicalisation and SHA-256:mandate_refis the spend authority being cancelled, imported by hash.cancellation_reasonis a closed enum:USER_REQUESTED,MERCHANT_REQUESTED,COMPLIANCE_TERMINATED,EXPIRED.
cancellation_ref diverges, so a cancellation cannot be silently re-pointed to another authority and the reason cannot be swapped. A reason outside the enum, or an empty mandate_ref, is rejected, not hashed.
Use
The lifecycle
Cancellation Receipt (lite) closes the open decision chain on the authority side. The chain is: agent identity (Agent Passportpassport_ref) + spend authority (Payment Mandate mandate_ref) + policy in force (Policy Binding policy_bound_ref) recompute into one pre-payment decision (Spend Guardrail guardrail_ref). A cancellation_ref over the same mandate_ref cancels that authority, and recomputes byte-for-byte alongside the decision — proven end to end in the decision-chain keystone.
Lite vs commercial
| Lite (this package) | Cancellation Receipt (commercial) | |
|---|---|---|
| Licence | Apache-2.0, open | Commercial OEM |
| Reference | content-addressed cancellation_ref | the same, Falcon-1024 signed receipt |
| Carries | reason + mandate (by hash) | + effective-from timing, provider, jurisdiction |
| Propagation | bring your own | across settlement + retention chains |
| Verifier | recompute offline | maintained verifier |
Adopters
If you build onalgovoi-cancellation-receipt-lite, pin ==0.1.0, anchor a canonical cancellation_ref vector hash from cancellation_receipt_lite_v1, and keep the NOTICE, you qualify for a free v0 licence key for algovoi-mandate-auditor. The gate is scripts/check_v0_adoption.py (dependency + canonical hash anchor + NOTICE + version pin, returning ISSUE_V0_KEY). Apply: email chopmob@gmail.com with your import-by-hash evidence and a copy of the NOTICE.
Conformance
Thecancellation_receipt_lite_v1 vector set (10 vectors) is published in the public corpus —
chopmob-cloud/algovoi-jcs-conformance-vectors —
with Python and Node runners. It covers the positive references, reason/mandate divergence, invalid-enum and empty-field rejection, and the field-distinctness invariant. cn-001, cn-002 and cn-003 cancel mandate_1, the mandate_ref in spend_guardrail_lite_v1. Python and TypeScript reproduce every value byte-for-byte.