Skip to content
Payvol

Merchant and POS

A code on the counter. Any wallet. Done.

The customer scans what is already on your screen and pays from a wallet that reads the format. The identifier the payment carries tells your till which sale it was.

Start building Other situations

Request Verify Route

Self contained

A payment code should not depend on a website staying up.

Hosted checkouts are smooth until the page is slow, the provider has an incident, or the shop's connection drops. A Payvol code is the request itself, so the only things that have to work are the customer's phone and the ledger.

The code carries the request, not a link to it

Everything the wallet needs is in the bytes on the screen. Nothing is fetched, so nothing can be unreachable at the moment of sale.

One code, whoever the customer banks with

Because the format is open and the vectors are public, a wallet either reads it correctly or fails its own tests. You are not asking customers to install anything.

The sale number stays inside your shop

The request carries an identifier. Your point of sale keeps that identifier next to its own sale number, locally, and nothing about what was bought or by whom goes near the ledger.

No terminal fleet, no provider account

There is no gateway to sign up for, no per transaction share to negotiate, and no third party holding a record of every sale you make. The counter and the ledger deal with each other directly.

How it works

Show, scan, settle.

01

Show

  • Your point of sale builds a request for the amount
  • It renders as a code on the screen or a printed slip
  • Nothing has been written to the ledger yet

02

Scan

  • The customer's wallet reads the bytes on the spot
  • It checks the destination and the asset
  • It shows what it established, and what it could not

03

Settle

  • The transfer runs on the network's own rails
  • Your node sees it arrive with the identifier
  • The till marks the sale, without anyone typing

Before you start

Where this does not fit yet.

Customers need a wallet that reads the format Until wallets ship support, this works for customers who brought the right one. That is a real limit at a busy counter.
There is no offline settlement The code works with your connection down; the payment still needs the customer's. A card machine degrades differently.
Refunds are a separate flow A refund is a new request pointing back at the old one, and the link between them is designed rather than built.
No terminal certification This is software reading a code, not a certified payment terminal. Where regulation demands one, it still does.

How to start

Put one on a screen and scan it.

The app turns a payment you describe into a real request, as a QR code you can save and a link you can copy. This situation uses Request, Verify and Route.

npm i @payvol/core @payvol/qr version 0.4.0