Skip to content
Payvol

B2B invoicing

Send the invoice. Let the payment find it.

The oldest problem in receivables is not getting paid. It is working out, afterwards, which invoice the money belonged to. This is the situation Payvol was drawn around.

Start building Other situations

Request Verify Observe Reconcile Connect · not built yet

Monday

Nobody's problem is sending the invoice.

An invoice leaves on Monday with an address and a reference somebody is asked to type. On Wednesday a payment arrives. On Friday the reference is missing, or misspelled, or the amount is short by the fee, or two invoices were paid in one transfer. Then somebody opens a spreadsheet.

The invoice becomes something a wallet can read

Your billing system produces the request alongside the PDF it already sends. Same delivery, same inbox, same customer. The difference is that the payment instruction is now structured rather than a line of text somebody has to retype.

Your customer's wallet checks before it pays

It checks the request against the profile before showing it, and names the rule behind any refusal. What it cannot establish, it reports rather than passing quietly.

The payment lands on your own node

No notification service and no webhook from a provider standing between you and your own receivables. Your participant already receives everything you are party to, and the identifier from the invoice is sitting in it.

The exceptions are the only thing left to read

The clean payments match themselves. What reaches a person is the short partial, the one that came late, the duplicate that might be real, and the transfer with no identifier at all. Each one arrives already explained.

What changes in your systems

Three integration points, and none of them is your ledger.

01

Billing

  • Produce a request when you produce the invoice
  • Attach it to the email you already send
  • Put the invoice number in the request as its reference; it travels with the payment

02

Node access

  • Read settlements from a participant you already use
  • Turn each update into a record with Observe
  • No new service to expose, no inbound webhook

03

Accounting

  • Take closure readiness as an input, not an instruction
  • Post through your existing controls and approvals
  • Keep every record, including the ones a later payment superseded

How to start

Get Friday back.

Or at least find out how much of it was avoidable. This situation uses Request, Verify, Observe, Reconcile and Connect.

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