Documentation

Accept shielded Zcash payments. Non-custodial. Set up in minutes.

In-Person POS

Accept Zcash at a physical store, market stall, conference, or pop-up event. No special hardware needed — a phone, tablet, or laptop with a browser is all it takes. CipherPay includes a dedicated POS mode that's installable as a Progressive Web App.

Dedicated POS mode

CipherPay's POS is a standalone fullscreen experience at /pos — separate from the dashboard. It's designed for tablets and phones at the counter: no sidebar, no navigation, just a product grid, cart, and payment screen.

Split-screen layout: product catalog on the left, live cart on the right
Category tabs: group products by category using the metadata field
Favorites: star frequently sold items for quick access
Custom amount: enter a one-off amount with a large numeric keypad
Tipping: 10%, 15%, 20%, custom, or no tip — added before payment
Fullscreen QR: large, high-contrast QR code with real-time status
Receipt screen: print-ready receipt with auto-reset for the next customer
Employee access with POS PIN

You can hand a device to an employee without exposing your dashboard, API keys, or billing. Set a 4-digit POS PIN in Dashboard → Settings. Employees enter the PIN to unlock the POS.

POS sessions can: view product catalog, add to cart, create invoices, accept tips, view receipts
POS sessions cannot: edit products, access settings, view API keys, manage billing, issue refunds
TIP
POS sessions last 4 hours. The "Lock" button returns to the PIN screen without logging out — useful for staff handoffs. Three wrong PIN attempts locks the device for 30 seconds.
Install as a PWA

CipherPay is a Progressive Web App. When you visit /pos in Chrome or Safari, you'll see an "Install" or "Add to Home Screen" prompt. Once installed, it runs in standalone mode — no browser chrome, no address bar. It looks and feels like a native app.

1. Open cipherpay.app/pos on your tablet or phone
2. Tap the browser menu → Install app (Chrome) or Add to Home Screen (Safari)
3. The app icon appears on your home screen
4. Open it — fullscreen POS mode, no browser chrome
NOTE
The PWA caches your product catalog for offline access. If the network drops briefly, your products still load from cache. Invoice creation requires an active connection.
1Set up your product catalog

Before using POS mode, add items in Dashboard → Products. Set a name and price for each item. Optionally, add a category via the metadata field to organize items in the POS grid:

{
  "category": "Drinks"
}
json
2Set a POS PIN

Go to Dashboard → Settings → POS PIN. Set a 4-digit PIN. This is what your employees will enter to access the POS — it's not your dashboard token.

3Open the POS

Navigate to /pos or click "Open POS" in the dashboard sidebar. Enter the PIN, then start ringing up sales.

4Ring up a sale

Tap products to add them to the cart. Adjust quantities with +/- buttons. When ready, tap Charge. Choose a tip amount (or skip). A fullscreen QR code appears. The customer scans and pays. The screen shows Detected (mempool, ~5-10 seconds) then Confirmed (block, ~75 seconds).

5Receipt and next customer

After payment, a receipt screen appears with the amount, ZEC equivalent, and invoice code. Tap Print to print via a connected receipt printer, or tap New Sale to start over. The screen auto-resets after 10 seconds of inactivity.

API reference
PUT /api/merchants/me/pos-pin — set or remove the POS PIN (requires dashboard auth)
GET /api/merchants/me/pos-pin — check if a POS PIN is configured
POST /api/auth/pos-session — verify PIN and create a scoped POS session (4h TTL)
TIP
At conferences and events, install the PWA on a tablet, set the POS PIN, and hand it to your team. Multiple devices can run the POS simultaneously against the same merchant account.
CipherPay — Private Payments for the Internet