Charge Payments · global acceptance and payouts

Take any currency. Get paid in yours.

Your customer pays with whatever they hold: a stablecoin, BTC, ETH, a memecoin. Charge converts it and settles you in the one thing you picked: bitcoin, USDC, dollars, euros, or a wire to your bank. US account or offshore, same API.

Any asset in Crypto or fiat out 190 countries Visa card on the same balance 0.9% per settled charge
pay.charge.fun/checkout/ord_abc123 Live
Northwind Supply Co.
storeOrderId: order_123456
$248.00
Pay with any asset
Network
Northwind gets paid in
You send 248.00 USDC
Network fee (est.) $0.004
Charge converts → 0.003624 BTC
Send 248.00 USDC
Base network · expires in 14:52
Deposit address
0x7A3fD2c9E41b8aF06Ce5D8b31c04A7e9F2b6D081
Waiting for transaction
Seen in mempool
Confirmations 0/2
Settled to your account
Payment settled
Charge IDord_abc123xyz789
Received248.00 USDC
Fee (0.9%)$2.23
Converted at1 BTC = $68,027
Net to Northwind$245.77

Simulated flow · no funds move · do not send real assets

Settlement tape · last 60 seconds

Sample data

What a charge actually does

Your customer sends whatever they hold. You get a normal-looking payment.

Charge quotes the price, locks it, watches the chain, converts, and hands you a settled balance with a receipt. Everything between those two moments is our problem, not yours.

01
Quote is locked
You create a charge for $248. Charge fixes the rate and holds it for the window. If the market moves inside that window, the difference is ours, not yours.
rate held 15:00
02
Address is issued
A single-use deposit address is generated per charge, so an incoming transaction is matched to an order without a memo field or manual reconciliation.
one address, one order
03
Chain is watched, then converted
We track the transaction from mempool to finality, screen it against sanctions and risk lists, then convert whatever arrived into your settlement asset through partner liquidity.
webhook per state
04
Balance is settled
Funds land in the currency you picked, on-chain or in your bank. Underpaid, overpaid, and late transactions get their own resolution paths instead of a support ticket.
≈ 4s on Base

Conversion

Anything can come in. One thing goes out.

You never have to hold what your customer wanted to pay with. Pick the asset or currency you want to be paid in once, and Charge quotes, routes, and converts every incoming payment into it before it hits your balance.

Customer pays with

USDCUSDTBTC ETHSOLDOGE PEPEXRPPYUSD TRXWIFBONK and more

Charge engine

Quote, route, hedge

You receive

Settlement asset

Bitcoin only Set once in the dashboard. Change it whenever you like to USD, EUR, GBP, CAD, AUD, USDC, ETH, or a wallet address you control.

Rate quoted to the customer · slippage and spread absorbed by Charge · settled amount is the amount you were quoted

Example

A memecoin becomes bitcoin

A buyer in Manila pays a $180 invoice in DOGE. The merchant in Lisbon has settlement set to BTC and never sees the DOGE.

  • Charge quotes 1,499 DOGE and holds the rate for 15 minutes
  • The transaction clears, gets screened, and is routed through partner liquidity
  • 0.00262 BTC lands in the merchant's balance with one receipt
Example

Crypto becomes euros in a bank

A SaaS company in Berlin bills in EUR. Its customers pay in USDT, SOL, and ETH from six countries.

  • Every charge is converted to EUR at the quoted rate
  • Balances sweep to a SEPA account on a daily or weekly schedule
  • One reconciliation file, in EUR, regardless of what came in

Coverage

A US bank account is optional.

Charge settles to US accounts through domestic rails and to accounts outside the US through partner banks and local rails. Where a bank is hard to reach, settlement in stablecoin to your own wallet works everywhere a wallet does.

Settle in the US

ACH and same-day wire to a US business account. Standard KYB, EIN, and beneficial owner verification through licensed partners.

Settle outside the US

SEPA in the euro area, Faster Payments in the UK, and local rails in supported markets including Nigeria, Brazil, and the Philippines. Availability and timing vary by corridor.

Settle without a bank

Choose USDC, BTC, or any supported asset to a wallet you control. Charge holds nothing and the payout is on-chain. This is the default for merchants in markets we have not licensed yet.

Currencies you can price and settle in
USDACH · wire EURSEPA GBPFaster Payments CADEFT AUDNPP

API · integrate.charge.fun

One POST, one redirect, one webhook.

Create an order, send the customer to the checkout URL that comes back, and fulfil when the signed webhook lands. Five currencies to price in, any asset to pay with. Change the settings on the left and the request updates.

Amount
Currency
Public key in
Settlement asset

Not a request parameter. You set what you get paid in once at pay.charge.fun, and every order converts into it.


        
https://pay.charge.fun/api/external

Reference

The whole surface fits on one page.

Base URL https://pay.charge.fun/api/external. Authenticate with your merchant public key, either in the merchant-public-key header or in the request body. Full guide at integrate.charge.fun.

POST /orders request body
ParameterTypeDescription
storeOrderIdstringRequiredYour internal order identifier. Comes back on every webhook so you can reconcile without storing ours.
amountstringRequiredOrder amount as a string, for example "99.99".
currencystringRequiredUSD, EUR, GBP, CAD, or AUD. This is what you price in, not what the customer pays with.
ipnUrlstringOptionalWhere signed webhooks are delivered.
successUrlstringOptionalWhere the customer lands after a successful payment.
failUrlstringOptionalWhere the customer lands after a failed or rejected payment.
cancelUrlstringOptionalWhere the customer lands if they abandon checkout.
Response

Returns the order with an id like ord_abc123xyz789, a status of pending, and a checkoutUrl on pay.charge.fun. Send the customer there. Read an order back any time with GET /orders/{id}, or list them all with GET /orders.

Order status
pending confirmed failed cancelled expired
Webhook events
payment.success

Payment completed. This is the event you fulfil on.

payment.pending

Payment seen and being processed. Do not fulfil yet.

payment.failed

Payment failed or was rejected by the network.

order.expired

The window closed without a payment. Create a new order.

Verifying

Every callback is signed

Webhooks carry X-Webhook-Signature and X-Webhook-Timestamp. Redirects carry the same pair as query parameters.

  • Sort the payload keys alphabetically, then encode canonically
  • Sign timestamp.payload with HMAC-SHA256 and your secret
  • Compare in constant time, and reject anything older than 300 seconds
  • Acknowledge with 200 immediately, then process asynchronously
Redirects

Three landing pages

Success, fail, and cancel each receive id, status, signature, and timestamp. Fail also carries a reason.

  • Common failure reasons: insufficient funds, network rejection, amount mismatch, wallet connection
  • A cancelled order is never charged and stays payable until it expires
  • The gateway may send redirects as POST, with the payload in the body
  • Treat the webhook as the source of truth, the redirect as what the customer sees

Both directions

Money in and money out, on the same balance.

The same account that accepts a payment can pay someone else. Every movement carries a direction, an asset, and a receipt, so your books reconcile without a spreadsheet.

Inbound

Receive

Charge pages, embedded buttons, invoices, and subscriptions. Your customer pays from any wallet or exchange.

  • Hosted checkout, embedded widget, or headless API
  • One deposit address per charge, no memo matching
  • Under and overpayment handled with automatic top-up links or refunds
  • Recurring charges with on-chain allowance renewal
Outbound

Send

Pay contractors, suppliers, and affiliates from the balance you just collected. Batch or single, with approvals.

  • Batch payouts to thousands of addresses in one call
  • Off-ramp to local bank accounts through licensed partners
  • Spend the balance on a Charge Visa card, anywhere Visa is accepted
  • Two-person approval and per-key spend limits
Accepted in
USDCBase · Ethereum · Solana · Polygon · Arbitrum USDTEthereum · Tron · Polygon BTCBitcoin · Lightning ETHEthereum · Base · Arbitrum SOLSolana XRPXRP Ledger DOGEDogecoin PYUSDEthereum · Solana Long tailtokens with sufficient liquidity, screened per listing
Settled out in
Any cryptoto a wallet you control Any supported fiatto your bank Holdkeep what came in, convert later Cardspend the balance on Visa rails

Charge Card · issued on Visa

Spend the balance without cashing it out.

The money you collected is already spendable. Charge issues a Visa card against your balance, converts at the moment of authorization, and works anywhere Visa is taken. Virtual instantly, physical where we ship.

Backed by BTC
4921  08••   ••••  3174
Northwind Supply Co.
Valid thru 04/30 · Business debit
VISA
Card draws from
Mode
$2,462.00

Spendable now. Each authorization converts only what the merchant charges, at the rate quoted on the receipt.

  • Convert at the till, not before. Charge converts only the amount authorized, so the rest of your balance stays in the asset you chose.
  • Spend or borrow. Draw down the balance, or open a credit line against holdings you do not want to sell, priced off your Charge Credit Score.
  • Any Visa merchant, any country. Online, in store, and in wallets like Apple Pay and Google Pay where supported.
  • Cards for your team. Issue virtual cards per person or per vendor, each with its own limit, and freeze any of them from the API.
  • One ledger. Card spend, inbound charges, and payouts sit on the same balance with the same receipts and the same webhooks.

Recent authorizations

Café Central · Marbella, ES
14:02 · contactless
€18.40
−0.00029 BTC
Amazon Web Services
09:31 · online
$842.10
−0.01238 BTC
Bolt · Lagos, NG
Yesterday · in app
₦12,500
−0.00012 BTC
Lufthansa
Mon · online
€610.00
−0.00975 BTC

Card issued by a licensed partner. Eligibility, limits, and availability vary by country. Sample activity.

Pricing

One rate. No interchange, no chargebacks.

You pay when a charge settles. Nothing monthly, nothing per API call, nothing for failed attempts.

Accept
0.9%

Per settled charge, any asset, any network. Network fees are quoted to the customer, not billed to you.

Same asset out
0%

Take BTC and keep BTC. No conversion, no extra fee, straight to an address you control.

Crypto to crypto
0.3%

Spread on conversion between assets. Thin-liquidity tokens carry a wider quoted spread, shown before the customer pays.

Crypto to fiat
0.4%

Off-ramp to a bank account through a licensed partner. Rates and corridors vary by country.

Security and compliance

Boring where it counts.

Non-custodial where possible

Settlement to your own wallet means Charge never holds the asset. Where custody is required by a product or a regulator, it sits with a licensed partner, and we say so in the dashboard.

Screened before it settles

Every inbound transaction is screened against sanctions and risk lists before it credits your balance. Flagged transactions are quarantined with a reason code, not silently dropped.

Regulated partners per market

Fiat off-ramps, card issuance, and any custody are handled by licensed issuers and local partners in each market where Charge operates. Availability varies by region.

Take your first crypto payment today.

Test keys are instant. Live keys come after verification, usually the same day for most markets.

Get API keys or email sales@charge.fun for volume pricing