refund_ref. Crucially, the subject_ref it refunds is exactly the guardrail_ref Spend Guardrail (lite) produces, so the refund composes onto the open pre-payment decision chain and closes the lifecycle after settlement. 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-refund-receipt-lite or npm install @algovoi/refund-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 Refund Receipt issues Falcon-1024 post-quantum signed receipts with provider, timing and jurisdiction, and closes the original payment across the settlement and retention chains.How it works
One reference, computed with RFC 8785 JCS canonicalisation and SHA-256:subject_refis the prior payment or decision being refunded, imported by hash.refund_resultis a closed enum:FULL,PARTIAL,REJECTED.refund_amountis the amount returned, as a string ("0"for aREJECTEDrefund).
refund_ref diverges, so a refund cannot be silently re-pointed to another payment and neither the outcome nor the amount can be changed without the reference diverging. A result outside the enum, or an empty subject_ref or refund_amount, is rejected, not hashed.
Use
The lifecycle
Refund Receipt (lite) closes the open decision chain after settlement. 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 refund_ref whose subject_ref is that exact guardrail_ref refunds the authorized payment, and recomputes byte-for-byte alongside the decision, proven end to end in the decision-chain keystone. Where Cancellation Receipt (lite) closes the authority before payment, Refund Receipt closes the payment after it.
Lite vs commercial
| Lite (this package) | Refund Receipt (commercial) | |
|---|---|---|
| Licence | Apache-2.0, open | Commercial OEM |
| Reference | content-addressed refund_ref | the same, Falcon-1024 signed receipt |
| Carries | result + amount + subject (by hash) | + provider, timing, jurisdiction |
| Propagation | bring your own | across settlement + retention chains |
| Verifier | recompute offline | maintained verifier |
Adopters
If you build onalgovoi-refund-receipt-lite, pin ==0.1.0, anchor a canonical refund_ref vector hash from refund_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
Therefund_receipt_lite_v1 vector set (11 vectors) is published in the public corpus,
chopmob-cloud/algovoi-jcs-conformance-vectors,
with Python and Node runners. It covers the positive references, result/amount/subject divergence, invalid-enum and empty-field rejection, and the field-distinctness invariant. rf-001, rf-002 and rf-003 refund the ALLOW guardrail_ref in spend_guardrail_lite_v1 / spend_decision_chain_v1. Python and TypeScript reproduce every value byte-for-byte.