Live Bitcoin · Ethereum · Litecoin · Polygon +4 more

Get paid in crypto. Keep the books clean.

Share a payment link or call the API. Funds land in a balance you control, on a double-entry ledger that reconciles against the chain — then pay out one address or a thousand.

No card details ever touch your servers. Settlement is on-chain.

Payment request Awaiting payment

Website build — milestone 2

0.0125 BTC

tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx

Expires in 14:52

8

Chains supported

Bitcoin, Ethereum, Litecoin, Polygon, Tron, BNB Chain, Dogecoin, Solana

18

Decimals of precision

Exact decimal maths, never floats

1,000

Recipients per batch

One approval, per-row status

2

Factors on every payout

Password plus an authenticator code

How it works

Three ways to get paid

Start with a link you can paste into an email. Move to the API when you are ready.

Payment links

Create a link with an amount and an expiry, then share it. The payer gets a hosted page with a QR, a countdown and live status.

Learn more

REST API

Create payment requests from your backend with an API key. Signed webhooks tell you the moment one settles.

Learn more

Dashboard and app

Watch payments land, move balances between assets, and pay out from a browser or your phone.

Learn more

The ledger

Your balance is not a number in a spreadsheet

Every movement is a double-entry group that sums to zero. Balances are a cache of the entries, and a scheduled job re-derives them from scratch to prove the two still agree.

What that buys you

  • Money is never a float

    Amounts are exact decimal strings end to end. A float cannot hold 0.1, and a satoshi lost to rounding is gone for good.

  • Nothing is credited twice

    Deposits are keyed on the chain transaction hash, canonicalised so a query string cannot make one hash look like two.

  • Holds, not optimism

    A withdrawal takes a hold the moment it is requested, so the same balance cannot be spent twice while it waits for approval.

  • It is checked, not assumed

    Reconciliation runs on a schedule and compares cached balances against re-derived ledger totals.

A deposit, in entries

house:deposits -0.0125
user:pending +0.0125
sum0.0000

Once the chain confirms it, a second group moves the same amount from pending to available. A group that does not sum to zero is refused before it is written.

For developers

An API you can read in one sitting

Authenticate with a key, create a payment request, verify the webhook signature. That is the whole integration.

create-a-payment-request.sh
curl -X POST https://cryptogate.foundrcode.com/api/merchant/v1/payment-requests \
  -H "Authorization: Bearer $CRYPTOGATE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "asset_id": 1,
    "title": "Invoice 1042",
    "amount": "0.0125",
    "reference": "ORD-1042",
    "ttl_minutes": 60
  }'

Amounts are strings

Send "0.0125", never 0.0125. A JSON number is a float, and a float cannot hold it exactly.

Signed callbacks

Every webhook carries an HMAC-SHA256 signature over the raw body. Compare it with hash_equals.

Idempotent by key

Pass an idempotency key on anything that moves money, and a retry resolves to one payment.

Security

Built for money, not for demos

The parts that protect funds were designed first, and every one of them is covered by a test that fails if it regresses.

Device-aware sign-in

A password from a device we have not seen earns an emailed code before any session exists.

Two factors on payouts

Every path that moves money out demands an authenticator code, on web and on mobile alike.

Secrets stored hashed

API secrets, one-time codes and device identifiers are hashed at rest. A stolen table is not a stolen account.

Sign-in history

Successes and failures both, with device and location, so a stranger trying your password is visible.

Maker and checker

The person who approves a payout batch is not the person who broadcasts it.

Reconciliation on a schedule

Cached balances are re-derived from the ledger and compared, automatically.

Ready to take your first payment?

Create a payment link in a minute, or read the API docs and integrate this afternoon.