- Non-custodial
- Geld direct in uw wallet
- 9 netwerken · USDT en USDC
Accepteer crypto.
Het geld staat direct in uw wallet.
Kant-en-klare verwerking van cryptobetalingen voor uw website, app of bot. U maakt met één request een factuur aan, stuurt de klant naar onze betaalpagina en ontvangt een webhook zodra het netwerk de betaling heeft bevestigd.
- Sandbox zonder echt geld
- Clients voor Node, PHP, Python en Go
- Ondertekende webhooks met retries
a1f3…9c0e · TRONKies een munt
Maak het exacte bedrag over
Betaling gevonden
Wachten op bevestigingen van TRON
Bevestigingen
TRON: 19 blokken — ongeveer een minuut
Betaald
49.99 USDT — in de wallet van de webshop
invoice.paid → uw server 200 OKU verkoopt. Wij houden de blockchain in de gaten.
Coinetic geeft elke klant een eigen adres, detecteert de betaling, wacht op het vereiste aantal bevestigingen en meldt pas dan ‘betaald’ aan uw server. Het geld gaat rechtstreeks van de wallet van de klant naar die van u — niet via ons.
9 netwerken. De klant betaalt met wat hij heeft
Native munten, USDT en USDC. Een token telt alleen mee als het contractadres op de whitelist staat — een nagemaakte ‘USDT’ verandert de status niet.
Drie stappen en u accepteert crypto
Geen nodes, geen wallets op uw server en geen smart contracts aan uw kant. De betaalpagina, koersen, adressen en bevestigingen regelen wij.
import { CoineticClient } from "./cryptopay.js";
const cp = new CoineticClient({
baseUrl: "https://pay.coinetic.money",
keyId: process.env.API_KEY,
secret: process.env.API_SECRET, // alleen op de server
});
const invoice = await cp.createInvoice({
order_id: "ORDER-1001",
price_amount: "49.99", // string, geen getal
price_currency: "USD",
return_url: "https://shop.example/orders/ORDER-1001",
}, "order-ORDER-1001"); // Idempotency-Keyrequire 'Cryptopay.php';
$cp = new \Cryptopay\Client('https://pay.coinetic.money', getenv('API_KEY'), getenv('API_SECRET'));
$invoice = $cp->createInvoice([
'order_id' => 'ORDER-1001',
'price_amount' => '49.99',
'price_currency' => 'USD',
'return_url' => 'https://shop.example/orders/ORDER-1001',
], 'order-ORDER-1001');from cryptopay import CoineticClient
cp = CoineticClient("https://pay.coinetic.money", os.environ["API_KEY"], os.environ["API_SECRET"])
invoice = cp.create_invoice({
"order_id": "ORDER-1001",
"price_amount": "49.99",
"price_currency": "USD",
"return_url": "https://shop.example/orders/ORDER-1001",
}, "order-ORDER-1001")cp := &cryptopayclient.Client{
BaseURL: "https://pay.coinetic.money",
KeyID: os.Getenv("API_KEY"),
Secret: os.Getenv("API_SECRET"),
HTTP: &http.Client{Timeout: 10 * time.Second},
}
inv, err := cp.CreateInvoice(ctx, cryptopayclient.CreateInvoice{
OrderID: "ORDER-1001",
PriceAmount: "49.99",
PriceCurrency: "USD",
ReturnURL: "https://shop.example/orders/ORDER-1001",
}, "order-ORDER-1001")// Express: stuur de klant naar de betaalpagina van Coinetic
app.post("/checkout", async (req, res) => {
const order = await createOrder(req);
const invoice = await cp.createInvoice({ /* zoals in stap 1 */ }, `order-${order.id}`);
await saveInvoiceId(order.id, invoice.id);
res.redirect(303, invoice.checkout_url);
});$invoice = $cp->createInvoice([/* zoals in stap 1 */], 'order-' . $order['id']);
save_invoice_id($order['id'], $invoice['id']);
header('Location: ' . $invoice['checkout_url'], true, 303);
exit;# Flask
@app.post("/checkout")
def checkout():
order = create_order(request)
invoice = cp.create_invoice({...}, f"order-{order.id}")
save_invoice_id(order.id, invoice["id"])
return redirect(invoice["checkout_url"], code=303)http.Redirect(w, r, inv.CheckoutURL, http.StatusSeeOther)import { verifyWebhook } from "./cryptopay.js";
app.post("/webhooks/coinetic", express.raw({ type: "application/json" }), async (req, res) => {
let event;
try { event = verifyWebhook(process.env.WEBHOOK_SECRET, req.headers, req.body); }
catch (e) { return res.status(e.status ?? 400).end(); } // ongeldige handtekening
const inv = await cp.getInvoice(event.data.invoice_id); // status uit de API
if (inv.status === "paid" || inv.status === "overpaid") await fulfilOnce(inv.order_id);
res.sendStatus(200);
});$headers = array_change_key_case(getallheaders(), CASE_LOWER);
try {
$event = \Cryptopay\verify_webhook(getenv('WEBHOOK_SECRET'), $headers, file_get_contents('php://input'));
} catch (\Cryptopay\CryptopayException $e) {
http_response_code($e->status); exit;
}
$inv = $cp->getInvoice($event['data']['invoice_id']); // status uit de API
if (in_array($inv['status'], ['paid', 'overpaid'], true)) fulfil_once($inv['order_id']);
http_response_code(200);from cryptopay import verify_webhook, CryptopayError
@app.post("/webhooks/coinetic")
def webhook():
headers = {k.lower(): v for k, v in request.headers.items()}
try:
event = verify_webhook(os.environ["WEBHOOK_SECRET"], headers, request.get_data())
except CryptopayError as e:
return "", e.status
inv = cp.get_invoice(event["data"]["invoice_id"]) # status uit de API
if inv["status"] in ("paid", "overpaid"):
fulfil_once(inv["order_id"])
return "", 200Elke client is één bestand zonder dependencies — download hem voor uw taal. Stap voor stap uitgelegd in de snelstart.
REST en webhooks. Idempotent. Voorspelbaar.
Een compacte API die moeilijk verkeerd te gebruiken is. Uw sandbox-sleutels staan binnen een paar minuten klaar in het dashboard.
Idempotency-Keyop elke wijzigende requestEen herhaling na een time-out geeft dezelfde factuur terug in plaats van een tweede aan te maken.- HMAC-SHA256-handtekeningHet secret gaat nooit over het netwerk; timestamp en nonce beschermen tegen replay.
- Bedragen als stringsGeen float: decimale strings en de kleinste eenheid van de asset.
- Referentiewaarden voor de handtekeningEen eigen client in elke taal test u binnen een minuut.
POST /v1/invoices HTTP/1.1
Authorization: CP-HMAC key=ak_live_…, ts=1760000000, nonce=…, sig=…
Idempotency-Key: order-ORDER-1001
Content-Type: application/json
{"order_id":"ORDER-1001","price_amount":"49.99","price_currency":"USD"}{
"id": "inv_x7k2…",
"status": "created",
"checkout_url": "https://pay.coinetic.money/pay/inv_x7k2…#t=…",
"expires_at": "2026-10-12T15:30:00Z",
"livemode": true
}Alles waar u anders een half jaar aan bouwt
Betaalpagina
QR-code, exact bedrag, netwerkwaarschuwing, live status en timer. In het Russisch en Engels, met licht en donker thema.
Geld in uw eigen wallet
BTC, LTC, TRON: adressen uit uw xpub. EVM: een smart-adres dat uitsluitend naar uw wallet doorstuurt. Solana: uw eigen adres.
Vaste koers
Prijs in USD of EUR. Het bedrag in crypto wordt berekend op de mediaan van drie exchanges en staat 20 minuten vast. Voor USDT en USDC geldt 1:1.
Onder- en overbetaling
Aparte statussen, bijbetalen op hetzelfde adres, tolerantie voor afrondingen van wallets, en een late betaling in stablecoins wordt automatisch verwerkt.
Webhooks met garantie
HMAC-handtekening, retries tot 24 uur lang, vaste volgorde van events per factuur, een afleverlog en opnieuw verzenden vanuit het dashboard.
Sandbox
Dezelfde API zonder echt geld: met de knoppen ‘exact betalen’, ‘onderbetaling’, ‘overbetaling’ en ‘half bedrag’ test u elk scenario.
Wij kunnen uw geld niet uitgeven. Technisch onmogelijk.
Voor het ontvangen van betalingen zijn alleen de publieke gegevens van uw wallets nodig. Coinetic vraagt en bewaart nooit private keys of seedphrases. Het adres dat de klant krijgt, is afgeleid van uw sleutel — en dat controleren wij drie keer.
- Alleen publieke sleutelsxpub/zpub voor BTC, LTC en TRON, een adres voor Solana en een verzamelwallet voor EVM-netwerken.
- Wallet wijzigen met vertragingWachtwoord, tweede factor, e-mail en bedenktijd om te annuleren — ook als iemand toegang krijgt tot uw dashboard.
- Kosten apart gefactureerdWij houden geen percentage in op de betaling: eens per maand ontvangt u een factuur, die u in crypto betaalt.
Waarin Coinetic verschilt van custodial verwerking
| Custodial verwerker | Coinetic | |
|---|---|---|
| Waar staat het geld na betaling | Op een rekening van de verwerker tot uitbetaling | Direct in uw wallet |
| Wie kan over het geld beschikken | De verwerker | Alleen u |
| Uitbetaling | Aanvraag, limieten, wachttijd | Niet nodig |
| Kosten | Meestal ingehouden op de betaling | Eens per maand een aparte factuur |
| Als de verwerker wordt gehackt | Het saldo van alle merchants loopt gevaar | Wij hebben geen sleutels tot uw geld |
‘Betaald’ pas na bevestigingen van het netwerk
Alleen de blockchain-watcher wijzigt de status. Niet de betaalpagina, niet de klant en geen parameter in de URL. Wordt een blok teruggedraaid, dan ontvangt u invoice.reorged.
createdFactuur aangemaakt, de klant kiest een munt
awaiting_paymentAdres en exact bedrag zijn verstrekt
detectedBetaling zichtbaar op het netwerk — nog niet leveren
confirmingIn een blok opgenomen, bevestigingen n/N lopen
paidBevestigd — de bestelling mag worden geleverd
Hoeveel bevestigingen wij per netwerk afwachten, leest u onder ‘Netwerken en assets’.
Eén integratie voor elk platform
Webshops
Een knop ‘Betalen met crypto’ naast de kaartbetaling. De klant betaalt vanuit elke wallet of rechtstreeks vanaf een exchange.
SaaS en digitale producten
Met metadata in de factuur koppelt u de betaling aan gebruiker en abonnement. Levering gaat automatisch via de webhook.
Apps en bots
iOS, Android, Telegram: u opent de betaallink en stuurt de gebruiker terug via return_url.
Veelgestelde vragen
Wat is non-custodial verwerking van cryptobetalingen?
Een betaalverwerker die het geld van klanten niet in beheer houdt. Coinetic geeft de klant een adres dat is afgeleid van uw publieke sleutel, volgt de blockchain en meldt de betaling, maar de middelen komen direct in uw wallet terecht. Wij kunnen ze niet uitgeven of omleiden.
Hoe lang duurt het aansluiten?
De code schrijft u in één avond: factuur aanmaken, redirect en een webhook-handler. Daarvoor registreert u zich in het dashboard, stelt u ontvangstwallets in en test u in de sandbox. Het volledige stappenplan.
Welke cryptocurrencies en netwerken worden ondersteund?
BTC, LTC, ETH, BNB, POL, TRX, SOL en daarnaast USDT en USDC — op 9 netwerken: Bitcoin, Litecoin, Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum One, TRON en Solana. Volledige lijst.
Moet ik zelf nodes draaien of sleutels op mijn server bewaren?
Nee. Netwerkmonitoring, adressen en bevestigingen regelt Coinetic. Op uw server staan alleen een API-sleutel om requests te ondertekenen en het webhook-secret.
In welke valuta stel ik de prijs in?
In USD, EUR, USDT of USDC. De klant ziet het bedrag in de gekozen munt; voor BTC, ETH en andere volatiele assets staat de koers 20 minuten vast, op basis van de mediaan van drie exchanges.
Wanneer geldt een betaling als betaald?
Pas na het vereiste aantal netwerkbevestigingen: bijvoorbeeld 2 blokken op Bitcoin en 19 blokken op TRON. De status ‘betaald’ wordt gezet door de blockchain-watcher, niet door de betaalpagina of de klant. Wordt een blok teruggedraaid, dan ontvangt u de webhook invoice.reorged.
Wat als de klant te weinig betaalt of een ander netwerk gebruikt?
Een onderbetaling krijgt de status underpaid en de klant betaalt het restant bij op hetzelfde adres. Een overboeking op een ander EVM-netwerk of met een nagemaakte token telt niet mee, maar is wel zichtbaar in de factuur — meer details.
Kan ik een klant terugbetalen?
Ja. POST /v1/refunds of een knop in het dashboard maakt een terugbetalingsverzoek aan. De betaling staat in uw wallet, dus u verstuurt de overboeking zelf en legt de hash vast; op EVM-netwerken vindt Coinetic de transactie zelf op de blockchain en stuurt de webhook refund.sent. Zo werken terugbetalingen.
Werkt Coinetic met mobiele apps en Telegram-bots?
Ja. Uw server maakt de factuur aan en de app of bot opent de betaallink in de systeembrowser. Het API-secret komt nooit in de app terecht. Zo opent u de betaalpagina.
Wat kost het?
Alleen een percentage over betaalde facturen, zonder aansluitkosten; de kosten worden eens per maand apart gefactureerd. Prijzen en calculator.
Uw eerste testbetaling binnen 15 minuten
Registreer, neem een sandbox-sleutel en voer een betaling uit zonder echt geld.