Integration paths
Role-based quickstarts for creator apps, storefronts, ticketing apps, scanner apps, and agents.
Compatible with the closed-beta ATM app APIs and versioned ATM event headers. Check atm-api-version on every webhook or XRPC receiver event.
Choose a path
Most apps do not need every ATM module on day one. Start with the path that matches the product, then add modules as the app needs them. Every path still shares the same app identity, test/live environments, service-auth, event delivery, and app-scoped ledger.
One-time payments
Hosted checkout, subscriptions, app webhooks, and one active subscription per payer/recipient/app when that is the app policy.
Storefront
ATM catalog refs, product app links, checkout, refunds, receipts, and private fulfillment in the app.
Tickets
Availability, holds, free scarce claims, payment-linked issuance, QR/pass tokens, and check-in.
Agents
Service-auth, buyer assertions, idempotent events, and future machine-payment limits.
Creator or supporter app
- 01
Check payout status
Disable support controls until the recipient can receive payments.
- 02
Confirm app approval
Ask the creator to approve this app, environment, fee cap, payment types, and public-record policy.
- 03
Create checkout
Send a private ATM envelope through strict attested.network initiate.
- 04
Confirm from events
Fulfill from payment.completed or subscription.updated, not from browser return alone.
- 05
Reflect in app UX
Show support received/given state from app data plus ATM ledger references.
Storefront or catalog app
Use money.atmosphere.product and money.atmosphere.price for shared public catalog fields. Keep shipping, downloads, fulfillment, and app-exclusive inventory private in the app; put shared finite inventory in ATM so multiple selling apps cannot oversell.
| Shared | Title, description, image, product kind, price, currency, archive state. |
|---|---|
| Private | Shipping address, download URLs, custom order fields, fulfillment messages, fraud notes, app-local stock. |
| ATM inventory | Shared physical stock or scarce variants that more than one app can sell. |
| Handoff | Register product_app_links so ATM can open the right app fulfillment surface. |
Ticketing app
Ticketing apps should start in the dedicated Tickets docs because they add scarce inventory and scanner truth on top of ATM payments.
Scanner app
- Never trust public repo records for capacity or entry state.
- Scan opaque QR/pass tokens only.
- Call verifyTicket for preview state and checkInTicket for entry.
- Treat repeat check-in as a state display, not a new mutation.
- Keep staff permissions and check-in logs private.
Agent or infrastructure app
Agent integrations should use the same contracts as app servers: exact-route service-auth, short-lived user assertions when acting with user intent, idempotency keys, spend limits, and event deduplication. MPP/x402-style payment-required flows are a roadmap module, not the launch checkout path.