Payment Event Records
PEAC records payment evidence across multiple rails: x402, Stripe SPT delegation, ACP mandate lifecycle, MPP/paymentauth HTTP auth challenges, and UCP order events.
Finality semantics rule
PEAC never synthesizes payment finality from non-payment artifacts. An ACP session "completed" does not prove payment settlement. A Stripe grant does not prove payment authorization. Each mapper uses assertExplicitFinality to enforce that finality is stated explicitly by the upstream system.
Commerce mandate records (v0.14.3+)
The org.peacprotocol/commerce-mandate extension group (7 type URIs) covers the mandate lifecycle. Validate with validateCommerceMandate() from @peac/schema:
org.peacprotocol/commerce-mandate-observedorg.peacprotocol/commerce-authorization-observedorg.peacprotocol/commerce-capture-observedorg.peacprotocol/commerce-void-observedorg.peacprotocol/commerce-refund-observedorg.peacprotocol/commerce-settlement-observed(the only event that may statesettlement_state)org.peacprotocol/commerce-budget-observed
x402 evidence
npm install @peac/adapter-x402 @peac/rails-x402
Records x402 v1 and v2 payment offer and settlement evidence with dual-header support.
Stripe SPT delegation evidence
@peac/rails-stripe is not published to npm in v0.15.0; build it from the repository (packages/rails/stripe).
Records Stripe Payment Token delegation grants. Does not prove payment authorization without explicit upstream confirmation.
MPP / paymentauth evidence
npm install @peac/mappings-paymentauth
Records HTTP Payment authentication scheme challenges and receipts (draft-ryan-httpauth-payment).
ACP session and payment evidence
npm install @peac/mappings-acp
Strict boundary: session evidence and payment observation use separate functions. amount_minor is always a string (not a number).
UCP order evidence
npm install @peac/mappings-ucp
payment_state_source marker separates order state from payment state.