ZyloPaydocs

ZyloPay overview

What ZyloPay is, how an in-store payment works, and what you can build on it.

ZyloPay is a payment network for physical stores. Customers pay by tapping an Apple Wallet or Google Wallet pass on a ZyloPay terminal. Each payment settles in USDC on the Monad blockchain in under a second. The customer needs no app at the till and no QR code.

You integrate with ZyloPay in three places:

  • Terminals take the payment at the counter.
  • The API lets your servers send payments to a terminal, read payments, refund them and check your balance.
  • Webhooks tell your servers the moment something changes.

How a payment works

A payment is a USDC transfer on Monad from the customer's wallet to the ZyloPay settlement contract. The customer never signs a transaction at the till. When they add the pass to their wallet, they sign a spending approval once: a signed limit (for example 1,000 USDC for 90 days) that ZyloPay can charge against. The pass carries a credential that identifies it, never the signature.

sequenceDiagram
  autonumber
  participant S as Your server
  participant Z as ZyloPay API
  participant T as Terminal
  participant W as Customer wallet pass
  participant M as Monad
  S->>Z: POST /v1/payment_intents (amount, terminal)
  Z-->>S: payment_intent (requires_payment_method)
  T->>Z: Pick up the intent for this terminal
  W->>T: Tap (NFC)
  T->>Z: Settle with the pass credential
  Z->>Z: Checks: pass, payer, risk, limits
  Z->>M: Settlement transaction (ZyloPay pays the gas)
  M-->>Z: Mined (about 800 ms)
  Z-->>T: Approved
  Z-->>S: Webhook payment_intent.succeeded, payment.succeeded
  1. Your server creates a payment intent for one of your terminals. A cashier can also start a payment on the terminal itself.
  2. The terminal shows the amount. The customer taps their pass.
  3. ZyloPay checks the pass, the payer's approval and limits, and its risk rules. Some payments need the customer to confirm in the app first.
  4. ZyloPay sends the settlement transaction to Monad and pays the network gas.
  5. The payment is final within about a second. You receive webhooks and the payment appears in GET /v1/payments.

Server-created payments and the ZyloPay POS app

Server-created payment intents are live in the API. The ZyloPay POS app picks them up while it is idle on the Terminal tab, starting with the POS release that adds intent pickup. That release is rolling out; ask support whether your terminals run it. Payments the cashier starts on the device reach your servers through the same webhooks and GET /v1/payments. See Terminals.

Your share lands in your merchant balance in the settlement contract: 100 % of the sale amount. The customer pays the network fees on top. See Fees and Settlement.

Products

What the API does not do

  • It does not charge a customer without a terminal. Paying needs the pass credential, which the terminal reads over NFC. That credential never passes through your servers.
  • It does not pay out. Withdrawals from your balance to your settlement wallet are made in the dashboard. The API exposes the balance.
  • It does not provision terminals. Terminals are created in the dashboard. The API lists them.

Next steps

On this page