Perly Invoice

Crypto invoicing

Being paid in stablecoins solves the part of cross-border invoicing that is genuinely broken — five days and a SWIFT fee to move your own money. It introduces one new way to lose it: the wrong network.

What has to be on the document

  • The asset, by ticker. USDC and USDT are not interchangeable, and "crypto" is not an instruction.
  • The network, spelled out. The same USDC exists on several chains and an address that is valid on all of them accepts a transfer on only the one you are watching.
  • The address, in a monospaced face, copyable, and as a QR code — because the failure mode of a hand-typed address is total.
  • The amount and the currency you are pricing in. If the invoice is €4,000 settled in USDC, say which number is the obligation.

Perly prints all of it. Add a wallet once under ways to get paid — asset, network, address — and the payment block on the sheet carries the asset's and the chain's marks, the address in mono, and a QR code beside it. An EVM address is the same address on every EVM chain, so you can tick the other assets and networks you will accept and the document says so.

Non-custodial, and that is the whole design

The address on the invoice is your address. The transfer goes from your client's wallet to it, on chain, and Perly is never a party to it — no escrow, no custody, no processor, no percentage. The flip side is the one everyone knows: a transfer that has confirmed cannot be recalled. Check the network before you send the invoice, not after.

Marking it paid

Nothing here watches the chain for you. When the money lands you mark the document paid, and the date it was paid is printed on it. A bot that watched an address would have to be told which transfer belonged to which invoice, and would be wrong often enough to be worse than useless.

And when the client would rather send a bank transfer

Put a bank account on the same document. SEPA, SWIFT or a local account sit in the payment block beside the wallet, divided by a rule, and the QR code falls back to a SEPA payment code when there is no wallet. One invoice, two ways to settle it, and the client picks.

What happens to it afterwards

A stablecoin payment is a position from the moment it arrives, and a tax event in most places when it is converted. Perly Invoice does not track any of that — the Perly app does: cost basis, PnL, and what today did to the money you invoiced last month. Same account, no second sign-up.

Common questions

Which assets and networks are supported?
The common stablecoins and major chains, including every EVM network on one address. Whatever you add is printed on the document exactly as you entered it.
Do you hold the funds or take a fee?
Neither. The address on the invoice is yours and the transfer never touches us. The only cost is the network's.
Can I price in euro and be paid in USDC?
Yes. The document's currency is what the obligation is in; the payment block says how you would like it settled. State the conversion basis in the notes so there is no argument about the rate.
Will it detect the payment automatically?
No. You mark it paid. A watcher that guessed which incoming transfer answered which invoice would be confidently wrong too often.
What if the client sends on the wrong chain?
That is why the network is printed in full and the address is a QR code. Once a transfer has confirmed there is nothing anybody — us included — can do about it.

Make one now

The generator is the front page. No account, no sign-up, no watermark — fill the document in and the PDF is yours.

Open the invoice generator