Integration guide for recording PEAC evidence from ACP checkout flows.
@peac/mappings-acp: session lifecycle mapping, carrier adapter
- Session lifecycle evidence (access-kind, not payment finality)
- Commerce evidence when explicit payment artifacts are present
- Capability negotiation snapshots for audit
- Intervention evidence for challenge flows
npm install @peac/mappings-acpACP session states produce access/session evidence, NOT payment finality:
import { fromACPSessionLifecycleEvent } from '@peac/mappings-acp';
const evidence = fromACPSessionLifecycleEvent({
session_id: 'sess_abc',
state: 'completed', // "completed" = session completed, NOT payment settled
resource_uri: 'https://shop.example.com/checkout/abc',
});
// evidence.payment.rail === 'acp'
// evidence.amt === 0 (no payment claim from session state alone)Commerce evidence requires an explicit payment artifact with observed payment state:
import { fromACPPaymentObservation } from '@peac/mappings-acp';
const evidence = fromACPPaymentObservation(
{
session_id: 'sess_abc',
state: 'completed',
resource_uri: 'https://shop.example.com/checkout/abc',
},
{
rail: 'stripe',
reference: 'pi_xyz',
amount: 1000,
currency: 'USD',
observed_payment_state: 'settled', // explicit payment proof
}
);
// evidence.payment.rail === 'stripe'
// evidence.payment.evidence.commerce_event === 'settlement'fromACPSessionLifecycleEvent(): session/access evidence onlyfromACPPaymentObservation(): commerce evidence only with explicitobserved_payment_stateattemptedandfailedproduce no commerce event even with payment artifact
import { fromACPCapabilitySnapshot } from '@peac/mappings-acp';
const snapshot = fromACPCapabilitySnapshot({
session_id: 'sess_abc',
seller_capabilities: { shipping: true },
buyer_capabilities: { payment_methods: ['card'] },
negotiated: { shipping: true },
});import { attachCarrierToACPHeaders, extractCarrierFromACPHeaders } from '@peac/mappings-acp';
// Attach PEAC receipt to ACP response
const headers = attachCarrierToACPHeaders({}, carrier);
// Extract from ACP response
const result = extractCarrierFromACPHeaders(responseHeaders);@peac/mappings-acp: session lifecycle, carrier adapter- ACP spec: https://www.agenticcommerce.dev/ (maintained by OpenAI and Stripe)
- ACP version:
2026-01-30(latest published)