Payment Event Records
Record payment evidence across multiple rails: x402, Stripe SPT delegation, ACP mandate lifecycle, MPP/paymentauth HTTP auth challenges, and UCP order events. Each record carries explicit finality semantics, and any party with the issuer's public key can verify it offline.
Packages: @peac/adapter-x402, @peac/mappings-paymentauth, @peac/mappings-acp, @peac/mappings-ucp
Explicit finality rule
PEAC never synthesizes payment finality from non-payment artifacts. An ACP session marked "completed" does not prove settlement; a Stripe grant does not prove authorization. Each mapper calls assertExplicitFinality so that finality is recorded only when the upstream system states it explicitly. A settlement state is allowed only on a settlement event.
Commerce mandate records
The org.peacprotocol/commerce-mandate extension group records the mandate lifecycle across seven observed event kinds. Validate with validateCommerceMandate() from @peac/schema before issuing.
| Type URI | Records |
|---|---|
org.peacprotocol/commerce-mandate-observed | A commerce mandate was granted |
org.peacprotocol/commerce-authorization-observed | A payment authorization |
org.peacprotocol/commerce-capture-observed | A capture against an authorization |
org.peacprotocol/commerce-void-observed | A void of an authorization |
org.peacprotocol/commerce-refund-observed | A refund |
org.peacprotocol/commerce-settlement-observed | A settlement (the only event that may state settlement_state) |
org.peacprotocol/commerce-budget-observed | A budget allocation or limit |
Supported rails
- x402 via
@peac/adapter-x402and@peac/rails-x402: x402 v1 and v2 payment offer and settlement evidence with dual-header support. - MPP / paymentauth via
@peac/mappings-paymentauth: HTTP Payment authentication scheme challenges and receipts. - ACP via
@peac/mappings-acp: session lifecycle and payment observation use separate functions;amount_minoris always a string. - UCP via
@peac/mappings-ucp: order events verified with RFC 9421 signatures; order state stays separate from payment state. - Stripe SPT via
@peac/rails-stripe(source-only; build frompackages/rails/stripe): Payment Token delegation grant evidence. A grant does not prove payment authorization without explicit upstream confirmation.
Compose a multi-rail evidence bundle
Observations from x402, ACP, and paymentauth can be composed into a single portable, signed audit bundle with createDisputeBundle from @peac/audit, verified offline with verifyBundle. The finality guard prevents a non-payment artifact from claiming settlement inside the bundle.
Semantic Boundary
PEAC records payment evidence as observed. It does not move money, settle payments, hold funds, or act as a payment rail or processor. Card numbers, tokens, and secrets are blocked from records. A payment event record proves what the upstream rail attested, not more.
Links
Portable Commerce Evidence
A signed payment record, or a multi-rail bundle, lets a counterparty verify what was attested offline. The same record format travels across x402, ACP, UCP, MCP, and HTTP.