Skip to content

Non-custodial payments

Get paid in bitcoin and dollars. Straight to your wallet. 0% of volume.

Bitcoin, USDC and USDT. Your keys, your wallet, one flat monthly price.

  • BTC · USDC · USDT
  • 5 networks
  • 0% of volume

Free up to 25 paid invoices a month.

Northwind Coffee

Beans, 1 kg

$24.00

Pay with

BTCBitcoin
USDC4 networks
USDT4 networks
pay.perly.io

How it works

Three steps

  1. 01

    Connect your wallet

    Add a public key from your Ledger or Trezor. Never a seed.

  2. 02

    Share a link

    A payment link, a hosted checkout, or two API calls.

  3. 03

    Get paid

    Money lands in your wallet. We send the receipt.

Checkout

Try the checkout

Pick a coin and a network, then pay. Nothing real moves.

  1. Coin ·Bitcoin, or dollars on four networks.
  2. NetworkThe fee on each network, said up front.
  3. AddressAn address made for this invoice, from your key.
  4. ArrivingSeen on the chain, then confirmed.
  5. PaidIn your wallet. The receipt goes out.

Northwind Coffee

Beans, 1 kg

$24.00

Pay with

pay.perly.io

Your cabinet

Every payment, in one place

Money per day, coins and networks, your wallets. All counted. None held.

Overview

Demo shop. Invented figures.

Today

+32%

$449

7 days

+3%

$2,565

30 days

+38%

$10,701

Received per day

329 payments in 30 days

$0$200$4009 Sept8 Oct

Coins and networks

30 days329

Wallets

  • Ledger·₿zpub6rFR7y4Q2Aij…Vz8t
  • Ledger·BAOΞxpub6D4BDPcP2GT5…Kq2Y

Developers

Integrate in minutes

A link with no code. A button with one script. Or two API calls and a webhook.

  • LinkNo code

    Share it anywhere. No site needed.

    link
    https://pay.perly.io/l/coffee-beans
  • Button1 script

    One script on a site you allow.

    index.html
    <script src="https://pay.perly.io/pay/v1.5bdf2776ee74.js"
      integrity="sha384-W98ndu50hymNVBtxKpwAcr3BxXUEFVzpxXZGF4AzqToIFMBPrQFVd4H60xXBzVJZ"
      crossorigin="anonymous" defer></script>
    
    <button data-perly-pay="coffee-beans">
      Pay with crypto
    </button>
  • API2 calls

    Invoices from your server.

    server.js
    const pay = new PerlyPay(process.env.PERLY_PAY_KEY);
    
    const invoice = await pay.invoices.create({
      amount: 2400,
      currency: "USD",
      description: "Beans, 1 kg",
    });
    
    redirect(invoice.url);
Open the guide

Subscriptions

Renewals by invoice. Nothing pulled.

Each period sends an invoice, then reminders. The buyer pays from their wallet. You keep the price they signed up at.

Coffee Club

$18.00 / month

Active

Next invoice in 7 days

Invoice for the next period

Coffee Club · 8 Nov – 8 Dec

  1. Day 0

    Trial starts

  2. Day 14

    First period paid

  3. −7 days

    Invoice for the next period

  4. −1 day

    Reminder

  5. Due

    Paid · renewed

  • Day to year, or every N days
  • Trials and grace days
  • Upgrades prorated now
  • Prepay several periods

Refunds

Refunds from your own wallet

The buyer gives an address. You send from your wallet. We confirm it and issue the refund receipt.

Price settings

Refund
24.00 USDC
Network fee
− 0.02 USDC
You send
24.00 USDC
Buyer gets
23.98 USDC

At checkout, the buyer ticks

  1. Link sent
  2. Address given
  3. You send
  4. Refunded

B Base

0x2b5a…d6cf

23.98

Receipts

A receipt for every payment

Numbered per shop. Sent by email, kept as a page, saved as a PDF.

  • EmailSent the moment it's paid.
  • PageA link the buyer keeps.
  • PDFFor the books.
  • NW-2026-000142 → NW-2026-000143 → …
NNorthwind Coffee
ReceiptNW-2026-000142

$24

24 USDC · Base
DateOctober 8, 2026 at 14:05 UTC
SellerNorthwind Coffee
Paid24 USDC
NetworkBase
Transaction0x5e1f0c2a…9d0e1f2a
ItemQtyAmount
Beans, 1 kg1$24
Total$24
Refunds: Within 14 days · The network fee comes out of a refund.
Accepted October 8, 2026 at 14:03 UTC

Questions? hello@northwind.test
Sent with Perly Pay

Security

Your money never touches us

Perly Pay · watches, never holdsBuyerYour walletRECEIVE · ACCOUNT 1bc1q7v…k2f8m/84'/0'/0'/0/17
  • We never hold your money

    Buyers pay your address. Not ours. There is no balance to withdraw.

  • Keys stay on your Ledger

    We get a public key. It makes addresses. It can't spend a cent.

  • If we vanish, it's still yours

    Everything paid is already in your wallet, under your keys.

We're moving onto it

Perly is moving onto Perly Pay

Our own products move onto it during the beta — the same checkout, the same rules.

Perly products moving onto it
Networks watched
Private keys we hold
Taken from our own sales
  • Perly App club seats

    Moving to Perly Pay

  • Perly App yearly plan

    Moving to Perly Pay

  • Perly Pay plans

    Moving to Perly Pay

How Perly gets paid

Pricing

One flat price. 0% of volume.

Pay for how many sales you make, never for how big they are.

2 months free

  • Free

    $0

    25 paid invoices / mo

  • Starter

    $24/ mo

    500 paid invoices / mo

  • Pro

    $48/ mo

    5,000 paid invoices / mo

  • Business

    $96/ mo

    25,000 paid invoices / mo

0% of volume · Unlimited test mode

See pricing

FAQ

Questions

  • Do you ever hold my money?

    Never. Buyers pay addresses made from your public key. We only watch and notify.

  • What do I need to start?

    An email and a wallet's public key. Test mode needs neither a card nor a contract.

  • Which wallets work?

    Ledger and Trezor connect in the browser. Any wallet that shows an xpub or zpub works too.

  • Do you take a cut?

    No. 0% of volume on every plan. You pay the flat price.

  • How do subscriptions renew?

    By invoice. Each period the buyer gets one with reminders and pays from their wallet.

  • What if Perly Pay goes away?

    Everything paid is already in your wallet, under your keys.

Your next sale can land in your wallet.

Test mode is free and unlimited. Live is free up to 25 paid invoices a month.