Skip to content
Accept payments

Take crypto payments on any site.

A hosted checkout and a one-line API for 50 coins. Fiat-priced or crypto invoices, shareable payment links, and signed webhooks you can trust.

0% to accept — you only pay the on-chain network fee.

Checkout explorer
₮TTether USDUSDT · TRON0% to accept
19Confirmation targetsolidified block
NetworkTRONStablecoin
Network fee now$2.432.434 USDT

The payer covers the network fee on an incoming payment. You pay 0% to accept on every plan.

Open a real USDT checkout

The demo mints a throwaway invoice on a real address. No payment is expected, and anything you send there is a real on-chain transfer — please don't.

how it works

From invoice to settlement.

One API call creates the invoice, the hosted checkout takes the payment, and a signed webhook tells your server it is final.

01

One-line API

Create an invoice in a single call and redirect to its pay URL. Fiat mode locks a rate per coin; crypto mode fixes the amount.

02

Hosted checkout

Redirect customers to a clean, mobile-first checkout — they pick a coin, scan a QR or open their wallet, and the page confirms live.

03

Signed webhooks

Every event is HMAC-SHA256 signed with idempotency keys — verify before you credit an order.

Two invoice modes

Price in fiat, or fix the coin.

The same call, one parameter apart. Choose per invoice.

mode=fiat

Fiat-priced invoice

Price in fiat, USD by default. The payer picks any coin enabled on your account, and the rate is locked per coin at checkout.

mode    "fiat"
amount  "9.99"
fiat_currency "USD"
What the payer sees
$9.99₿Ξ₮T◈◎quoted in the coin they pick

Best for stores with prices in fiat.

mode=crypto

Crypto-priced invoice

Fix the coin and the exact amount up front. The checkout opens straight on the address, QR and amount.

mode     "crypto"
amount   "25"
currency "USDT_TRON"
What the payer sees
₮T25.00 USDT · TRON

Best for top-ups, deposits and amounts agreed in crypto.

built for real checkouts

Everything a checkout needs, nothing it does not.

50 coins, one flow

BTC, Gram (TON), ETH & EVM chains, Tron, Solana, LTC, DOGE, BCH plus USDT/USDC on every major network.

Plugins for your platform

Install a ready module for WooCommerce, PrestaShop, Magento 2, OpenCart, WHMCS and more, or drop one PHP file into anything custom.

Checkout in five languages

English, Russian, Ukrainian, Spanish and German. The checkout opens in the language you pass with the invoice.

Under- and overpayments tracked

A partial or excess payment is recorded on the append-only ledger, so nothing is lost and nothing is credited twice.

Retries never double

Send an Idempotency-Key with the invoice call: a retried request returns the same invoice instead of creating a second one.

Your balance, your call

Every payment is credited to your Payora balance the moment it confirms on-chain. Withdraw to any external wallet: 1.5% on Free (0.75% Pro, 0.5% Business) plus the coin's network fee, a $50 minimum, up to 10 business days.

built for real checkouts

Designed around money-safety

  • Fiat or crypto — price in USD/EUR and let the payer choose a coin, or fix the crypto amount.
  • Live confirmation — the checkout polls and flips to Paid on finality.
  • 0% to accept — you only pay the on-chain network fee.
  • Append-only ledger — under- and over-payments are tracked, never lost.
checkout.php
<?php
require 'Payora.php';
$payora = new Payora('https://api.payora.money', $apiKey, $apiSecret);

// fiat-priced: the payer picks the coin at checkout
// (crypto-priced: 'mode' => 'crypto', 'currency' => 'USDT_TRON')
$inv = $payora->createInvoice([
  'order_id' => '42',
  'mode'     => 'fiat',
  'amount'   => '9.99',
]);
header('Location: ' . $inv['pay_url']);

// webhook: verify over the RAW body, then credit once
$event = $payora->verifyWebhook(file_get_contents('php://input'), getallheaders());
if ($event && $event['status'] === 'paid') {
  creditOrder($event['order_id']);
}
FAQ

Frequently asked questions

Straight answers, including the uncomfortable ones: custody, fees and what happens when something goes wrong.

Help centre

How do I accept crypto payments on my website?

Create an invoice with one API call (order ID plus a fiat or crypto amount), then redirect the customer to the returned pay URL. Payora hosts a mobile-first checkout where they pick a coin, pay, and see live confirmation. When the payment reaches finality, Payora sends your server a signed webhook so you can mark the order paid.

Which cryptocurrencies can I accept?

50 assets across 22 networks: Bitcoin, Ethereum and EVM chains (BNB, Polygon, Arbitrum, Base, Optimism, Avalanche), TON, Tron, Solana, Litecoin, Dogecoin, Bitcoin Cash, XRP and Stellar — plus USDT and USDC on every network that carries them. One integration covers them all; the payer chooses at checkout.

What does it cost to accept payments?

Payora charges 0% to accept. You only ever pay the on-chain network fee on an incoming payment, and the payer covers it. There is no setup fee and no monthly fee. Platform fees apply only when you move money out: 1.5% on Free, 0.75% on Pro and 0.5% on Business — the same rate for payouts, internal transfers and withdrawals — and a withdrawal or payout also costs the network fee of the coin being sent. The minimum withdrawal is the equivalent of $50.

Is Payora custodial — do you hold my funds?

By default, yes. Receive addresses are derived from keys held by Payora, payments land there, and your share is credited to your balance; you withdraw to your own wallet (1.5% on Free, 0.75% Pro, 0.5% Business, plus the network fee, $50 minimum, up to 10 business days). If you would rather Payora never held your funds at all, vetted merchants can request derivation from their own xPub — then payments settle straight to wallets only you control. Ask support to enable it for your account.

How do I verify a payment webhook is genuine?

Every webhook is signed with HMAC-SHA256 over the timestamp and raw body using your api_secret, with a timestamp to prevent replay and an idempotency key to prevent double-processing. Recompute the signature with a constant-time compare before crediting the order — the one-file SDK does this for you.

Start accepting crypto.

Create an account, add your site, paste one API call or install a plugin. Accepting stays 0% on every plan.

What this page answers