Flow diagrams
Visual implementation diagrams for checkout, app events, proof writing, tickets, free claims, and QR check-in.
Compatible with the closed-beta ATM app APIs and versioned ATM event headers. Check atm-api-version on every webhook or XRPC receiver event.
ATM checkout
- 01
App checks payability
Recipient must be payable before purchase buttons are enabled.
- 02
App creates order
Private app order and fulfillment context stay in the app.
- 03
ATM starts checkout
App sends strict initiate with an ATM checkout envelope.
- 04
Buyer pays
ATM hosted checkout owns processor and wallet lifecycle.
- 05
ATM emits event
App fulfills from payment.completed, not the redirect.
Webhook and XRPC delivery
- 01
ATM creates event
Event includes id, delivery id, environment, app DID, type, and data.
- 02
HTTP path
ATM signs the raw body with the app environment secret.
- 03
XRPC path
ATM calls the app-hosted receiver with service-auth.
- 04
App verifies
The app verifies auth before parsing or side effects.
- 05
App deduplicates
Delivery id is stored before fulfillment.
Proof writing
- 01
Payment settles
ATM records the private payment ledger row.
- 02
Broker proof
ATM writes the ATM rail/broker proof.
- 03
Payer slot
App or ATM writes payer record when a grant or delegated path exists.
- 04
Creator slot
ATM writes creator proof when the creator explicitly syncs from the dashboard.
- 05
Proof outbox
Missing, waiting, or blocked slots remain observable and retryable.
Ticket hold to issuance
- 01
Read availability
Derived from private capacity, holds, and issued tickets.
- 02
Create hold
Tickets locks capacity transactionally.
- 03
ATM checkout
Paid tickets redirect to hosted ATM checkout.
- 04
Payment confirmed
ATM notifies Tickets after settlement.
- 05
Tickets issued
Tickets emits tickets.issued to the originating app.
Free limited ticket
- 01
Buyer clicks get ticket
No checkout redirect is needed.
- 02
App asserts buyer
Buyer DID plus short-lived buyer assertion proves user presence.
- 03
Tickets locks capacity
Same no-oversell transaction as paid holds.
- 04
Ticket issued
Issued immediately and delivered to the app.
QR check-in
- 01
Pass contains opaque token
No DID, email, ticket id, or processor id in the QR payload.
- 02
Scanner verifies
Optional verify call reads current state.
- 03
Scanner checks in
checkInTicket records the mutating entry action.
- 04
Repeat scan
Returns existing checked-in state without duplicate entry.