AP2 and Verifiable Intent: bridges into both worlds
Mandact accepts Google's classic AP2 mandates and bridges Mastercard Verifiable Intent in both directions — decided by the same engine, checked against the reference implementations.
AP2 acceptance
POST /v1/interop/ap2 accepts the trio of intent, cart and payment mandates: structure per Google's models, merchant signature including cart_hash binding. Merchants, SKUs, expiry and the confirmation requirement map to counterparty, line items, validity and escalation.
Verifiable Intent bridge
POST /v1/interop/vi exports an active mandate as a VI chain (L1 and L2) and accepts VI chains — fully verified and translated fail-closed. A limit Mandact cannot enforce is not accepted.
Verifiable instead of claimed
The reference runs (npm run vi:referenz, npm run ap2:annahme) write their anchors only when green. Only these anchors permit compatibility wording in the code at all.
Status
Implemented (lib/interop/ap2.ts, lib/interop/vi.ts); reference anchors green in the repository.