ZettaPay is never in the flow of funds — payments go straight from the payer to your wallet — so it cannot and does not take a percentage. Self-hosting the open-source listener is free forever. Cloud is a flat monthly plan sized by how many invoices you create. Your customer pays only the normal network fee of the chain.
Install @zettapay/listener from npm and run it on your own infrastructure.
MIT-licensed, no invoice caps, no account with us, nothing to pay. You operate it; the funds land directly in your wallet.
The network fee is whatever the chain charges for a normal transfer. It goes to the network, never to ZettaPay — on any plan.
The same listener core, hosted for you, with an API and hosted checkout links. A flat monthly subscription by invoice volume — invoices created per calendar month. Still non-custodial, still no transaction fee.
Enough to launch and take your first payments. No card needed.
For a shop with steady orders. Same features, a higher monthly cap.
For higher volume. Above 5,000 invoices a month, contact us.
Bitcoin and Base are watched for the addresses derived from your public key, so your backend doesn’t have to.
When a payment confirms on-chain, your endpoint receives a signed webhook with the amount, asset, chain and transaction hash.
Create invoices through the API under /api/v1, or send your customer a hosted checkout link.
ZettaPay is not a card processor. It watches the chain and tells your backend when an on-chain payment to your own wallet has confirmed. Different model, different properties.
Self-hosted
ZettaPay · open source
Cloud
ZettaPay · managed
The trade-offs run both ways. ZettaPay does not convert or settle in fiat, and it has no refund button: an on-chain payment is final, so if you want to refund a customer you send it yourself from your own wallet.
ZettaPay only ever holds public key material. The payment moves from the payer to your wallet without passing through us, so there is nothing to take a percentage of.
Cloud runs the same listener core you can run yourself. Move from Cloud to self-hosted whenever you like — your keys and your funds never lived here.
Hitting a plan’s monthly cap only pauses the creation of new invoices. Every invoice already created is still watched, confirmed and sent to your webhook.
The questions merchants ask before integrating.
npm install -g @zettapay/listener, point it at your public key and start it on your own infrastructure. The walkthrough is in /docs/quickstart.Either way you only ever hand over public material. No wallet connection, no private key.
If you would rather not pay anything, self-host: the listener is open source under MIT, free forever and has no limits.
When you reach the cap, creating new invoices is paused until the next month begins or until you upgrade. Invoices already created are not affected — they keep being watched, confirmed and delivered to your webhook.
Need more than 5,000 a month? Contact us.
A paid plan that is not renewed falls back to Free. There is still no per-transaction fee. These are early-access prices and may change.
ZettaPay is non-custodial: funds move directly from the payer to you on-chain and we never hold them. You remain responsible for your own legal and tax obligations where you operate.
No transaction fee on any plan. Start free on Cloud, or self-host the open-source listener and pay nothing at all. Either way, the funds go straight to your wallet.