Skip to content
Payvol

The platform

Six modules that carry a payment all the way.

Most payment tooling stops at the transfer. Payvol covers what comes before it and what comes after: the ask, the check, the path, the sighting, and the record that closes the loop.

Start building Read the docs

Pick what you need

Each one stands alone. Together they close the loop.

Adopt the request format and nothing else. Or skip straight to reconciliation over settlements you already have. Nothing forces the whole stack.

Where the work goes

Three ways to get a payment closed on Canton.

The transfer is the easy part. This table is about everything else, and who ends up owning it.

Responsibility Build it yourselfOne vendor's stackPayvol
Request format Yours to invent Theirs, closed Open profile
Wallet compatibility One wallet at a time Their wallet Any conforming wallet
Settlement Token Standard Through them Token Standard, directly
Who sees your payments You You and them Payer, payee and the instrument registry
Reconciliation rules Written twice, differently Opaque Fixtures you can read
If you leave Nothing to leave Rewrite Keep the format

The payer, the payee and the instrument registry can read the identifier. A party that took no part reads nothing. The registry is a signatory of the template, so this is structural rather than a choice of ours.

Underneath

One profile, or none of this works.

Every module reads the same canonical bytes and the same identifier. That is what lets one team adopt Request, another adopt Reconcile, and their systems still agree about what a payment was.

The format and the conformance suite are open. Build your own implementation and check it against the same vectors we run.

Read the docs

import { encode } from '@payvol/core'
import { payloadDigest } from '@payvol/core/draft02'

// the same bytes, whoever produced them
const uri = encode(request)
const identifier = payloadDigest(payload)

// every module downstream reads that identifier and no other

Start with one module.

Most teams start with Request, because it changes nothing else about how they work. The six are 6 stages of one payment, not a stack you have to buy.

Explore Request Launch the app