Skip to main content
Version: v0.16.1

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-observed
  • org.peacprotocol/commerce-authorization-observed
  • org.peacprotocol/commerce-capture-observed
  • org.peacprotocol/commerce-void-observed
  • org.peacprotocol/commerce-refund-observed
  • org.peacprotocol/commerce-settlement-observed (the only event that may state settlement_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

Source-only

@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.