Swiss gateway · settle in CHF, EUR, USD or GBP

Accept crypto.
Settle in fiat.

Let customers pay in Bitcoin, Ethereum or stablecoins — and receive euros, francs, dollars or pounds in your bank account. Share a payment link, use the hosted checkout, or install a shop plugin. No crypto expertise needed, and developers get a full API.

  • No setup or monthly fees
  • Starting at 1%
  • WooCommerce plugin

Everything you need to accept crypto, built on rails you can trust.

Qint is engineered for production — state-machine driven, event-friendly, and audit-clean. Drop in the SDK, link the gateway, and start collecting payments in days, not quarters.

API-first payment intents

Create a payment intent, deliver instructions, and receive webhooks as the transaction moves from initiated through settled.

Hosted payment links

Beautiful Stripe-style checkout pages with wallet address, QR code, live status, and a countdown timer — no front-end required.

WooCommerce plugin

Native gateway plugin with merchant settings, hosted checkout redirect, and order status updates wired to webhooks.

Idempotency & safe retries

Every request is idempotent. Retry without fear — duplicate intents collapse and the audit trail stays clean.

Signed webhooks

HMAC-signed event delivery with replay protection. Listen for status changes and reconcile state automatically.

Immutable audit trail

Every state transition, retry, and webhook delivery is recorded — ready for reconciliation, disputes, and compliance.

Payment links your buyers actually want to pay on.

Share a link — or let the plugin redirect — and Qint hosts the checkout: the exact amount, a QR code, the wallet address, and live payment status. Branded to your shop, and just as good on a phone.

  • The rate is locked. A countdown holds the quote, so the amount your buyer sends is the amount you agreed on.
  • Status updates live. Your buyer watches confirmations arrive on the page — no “did it go through?” emails.
  • Send it anywhere. Email, invoice, chat, or straight from your store’s checkout.
See a demo payment page

Built for developers. Boring in the best way.

Every payment is an explicit state machine, and every transition reaches your server as a signed, verifiable webhook. No polling, no guessing.

  1. Initiated

    Intent created — via API, payment link or the WooCommerce plugin.

  2. Pending

    Your buyer has the instructions; we watch the chain for the transfer.

  3. Confirmed

    Confirmations reached, amount verified on-chain.

  4. Settled

    Credited in your account currency at the quoted rate. Books closed.

Failed Expired

First-class terminal states, delivered over webhooks like every other transition — a payment is never stuck “somewhere on chain”.

payment.status · webhook delivery
POST /webhooks/qint HTTP/1.1
X-Qint-Signature: sha256=5f8a91c0…
Content-Type: application/json
 
{
"type": "payment.status",
"intentId": "pi_x7k2m9p4q1w8",
"status": "settled",
"amount": 124.00,
"currency": "EUR",
"creditAmount": 115.84,
"creditCurrency": "CHF",
"creditRate": 0.9389
}
 
// response
200 OK · delivered in 84ms · attempt 1

Idempotent by design

Send a request twice, get one result. Duplicate intents collapse, and retries resolve to a single state transition.

Replayable deliveries

Webhooks are HMAC-signed and retried on failure — and every delivery is logged, so you can replay events your endpoint missed.

An audit log that can’t be edited

Every state change, retry and delivery is recorded immutably — ready for reconciliation, disputes and your accountant.

Eleven currencies in. One line on your bank statement out.

Buyers pay from the wallet they already have — you receive francs, euros, dollars or pounds. USDT and USDC are accepted on Tron, Ethereum and Solana, so nobody has to move funds to a new network just to pay you.

  • KYB-verified merchants — onboarding runs through our regulated Swiss execution partner
  • Approval before money moves — payments unlock only once your account is cleared
  • Role-based access, so finance and developers each see exactly what they need
  • An immutable audit trail behind every payment and payout
  • Custody, compliance and fiat settlement on a licensed Swiss execution partner
B BTCE ETHS SOLT TRXD DOGEA ADAX XRPX XLM

Every asset settles to CHF, EUR, USD or GBP in your bank account. The full asset and network list lives in the developer docs.

Four steps from intent to settlement.

Idempotent, audited, and built around an event-driven core. No state guessing.

  1. Create an intent

    POST /v1/intents with an amount, currency and an order reference. Qint returns an intent and a hosted checkout URL.

  2. Buyer pays

    We host the checkout: wallet address, QR, network, timer, and live status — all branded to your merchant.

  3. Webhook fires

    We watch the chain and ping your endpoint with signed events at every state transition.

  4. Settle in fiat

    Each payment is credited to your balance in your account currency at the rate fixed in the quote; our regulated execution partner handles the conversion. CSV exports and audit logs are ready for finance.

An API your engineers will actually like.

Stripe-shaped semantics, idempotency keys, signed webhooks, and SDKs for the languages you ship with. Drop-in for new builds and clean to integrate with legacy checkouts alike.

  • REST + JSON, OpenAPI spec, typed SDKs
  • HMAC-signed webhooks with replay protection
  • Idempotency on every mutating request
  • Sandbox keys & test wallets out of the box
Node.js · create_intent
import { QintClient } from "@qint/node";

const qint = new QintClient({ apiKey: process.env.QINT_API_KEY! });

// 1) Create a payment intent — price in fiat, the buyer pays in crypto
const intent = await qint.createIntent({
  amount: 124.0,
  currency: "CHF",
  title: "Order #4029",
  idempotencyKey: "order_4029",
  returnUrl: "https://shop.example.com/thanks",
});

// 2) Redirect your buyer to the hosted checkout
console.log(intent.checkoutUrl);

Ship on the platforms your merchants already use.

Qint is API-first, but you don’t have to start there. Choose the integration that fits.

Live

Hosted Payment Links

Create a link from your dashboard or via API. Send it anywhere — email, invoice, SMS — and we host the checkout.

Coming soon

Shopify

Drop-in app for Shopify merchants. Same Qint flow, native Shopify checkout UX. Coming after MVP launch.

Coming soon

POS

Point-of-sale terminal flow for in-person crypto payments with QR + live status.

Pay for what you process. Nothing else.

Transparent, transaction-based pricing. No setup fees, no monthly fees. High-volume merchants get a custom rate.

Custom

Volume-based

Tailored for high-volume, regulated and multi-region merchants.

  • Everything in Standard
  • Negotiated per-transaction rate
  • Custom payout schedule
  • Dedicated support
Talk to sales

Payout fees: CHF to a Swiss bank account: free. All other payouts, including CHF to a foreign bank account: free from CHF 5'000 equivalent, CHF 25 below. See payout fees

Questions, answered.

Are there any setup or monthly fees?

No. Qint charges a single conversion fee per transaction. The only other charge is the payout fee below, and payouts in CHF to a Swiss bank account are always free.

Are there payout fees?

Payouts in CHF to a Swiss bank account are free, with no minimum. All other payouts, including CHF to a foreign bank account and payouts in another currency, are free from CHF 5'000 equivalent per payout and cost CHF 25 below, deducted from the payout amount. Automatic payouts wait for CHF 5'000 and never pay this fee, unless you set a minimum balance for automatic payouts: they then go out as soon as your balance reaches it, and the fee applies below CHF 5'000.

Who pays the fee?

You choose: absorb the conversion fee yourself, or pass it on to your customer at checkout.

How do payouts work?

Settled payments are credited to your balance in your account currency: CHF, EUR, GBP or USD. You can pay out in that currency or in another of the four; a payout in another currency is converted at the market rate when you request it, with no conversion fee, and sent to your bank account. Crypto payouts are not offered.

In which currency is my balance held?

In fiat only: CHF, EUR, GBP or USD, never in crypto. Each payment is credited in your account currency (CHF by default, or EUR, GBP or USD in your settings) at the exchange rate fixed when your customer is quoted, so from that moment you carry no crypto or exchange-rate risk. If you change the account currency, a balance in the previous currency stays payable in it and can be converted at the reference rate, with no fee.

Why does pricing start at 1% and not a flat 1%?

Onboarding and monitoring cost differs per merchant. Each merchant is priced on its own profile. 1% is where it starts.

How do I find out my rate?

Request a quote or start onboarding. With your company details, jurisdiction and business model we send you a binding rate in writing, usually within two business days and always before you go live.

Can my rate change later?

Your rate is fixed for 12 months, then reviewed once a year on volume and track record. Rates can go down. Any change is announced in writing at least 30 days ahead.

Is the rate negotiable?

Above CHF 1 million a month, yes: see Custom. Below that, the rate follows your risk profile and can improve at the annual review.

Take your first crypto payment this week.

Spin up a sandbox key, drop in the SDK, and you’re in production by Friday.