DevelopersAn API your engineers will like
Build crypto checkouts with one API call.
REST + JSON, Stripe-shaped semantics, idempotency keys, signed webhooks. Sandbox keys and test wallets are available the moment you sign up.
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);API reference
A small, predictable surface.
Most integrations only ever need three endpoints.
POST/v1/intentsCreate a payment intent and return the hosted checkout URL.
GET/v1/intents/:idRetrieve the current state of a payment intent.
GET/v1/intentsList and filter your payment intents with pagination.
SDKs
Typed SDKs for the languages you ship with.
Node.js
$ npm i @qint/node
View on GitHub Python
$ pip install qint
View on GitHub C# / .NET
$ dotnet add package Qint
View on GitHub Go
$ go get github.com/SwizzX-GmbH/qint-go
View on GitHub Every SDK is open source on GitHub. Package-registry publishing is in progress — until then, install straight from the SwizzX-GmbH repositories.
Webhooks
Signed, idempotent, replayable.
Every delivery is a single payment.status event with an HMAC signature in X-Qint-Signature and a unique X-Qint-Event-Id to dedupe on. Failed deliveries retry with exponential backoff and surface as an audit log in the dashboard.
payment.status — lifecycle values
v1initiatedIntent has been created and is awaiting payment.
pendingBuyer has initiated payment; transaction detected on-chain.
confirmedConfirmation threshold reached for the network.
settledFunds have been converted and settled to the merchant.
failedPayment failed (wrong network, unrecoverable, etc.).
expiredIntent timer ran out before payment was detected.
cancelledIntent was cancelled before it was paid.