Documentatie / Integratie
Betaalpagina
De betaalpagina bouwen wij. Uw server stuurt de klant er alleen naartoe — via de checkout_url uit het antwoord bij het aanmaken van de factuur.
Wat de klant ziet
- Het orderbedrag en een timer met de looptijd van de factuur.
- Een keuze van de valuta — alleen de assets van de factuur die op dat moment beschikbaar zijn.
- Na de keuze: een QR-code, het exacte bedrag met een knop ‘Kopiëren’, het adres, een waarschuwing over het netwerk en een link ‘Openen in wallet’ (BIP21, EIP-681, Solana Pay, TRON).
- De status werkt zichzelf bij: ‘Betaling gevonden’ → ‘Bevestigingen 7/20’ → ‘Betaling ontvangen’.
- Een knop ‘Terug naar de winkel’ — uw
return_url.
Zolang er nog niets is betaald, kan de klant van valuta wisselen. Na de eerste betaling ligt de valuta vast. Voor een volatiele asset loopt een koerstimer (20 minuten); is die verlopen, dan worden bedrag en adres verborgen.
De pagina is beschikbaar in het Russisch en het Engels, met een licht en een donker thema — volgens de instellingen van het apparaat.
Hoe u de pagina opent
| Waar | Hoe |
|---|---|
| Website | Doorsturen in hetzelfde tabblad: 303 See Other vanaf uw server of location.href |
| iOS | ASWebAuthenticationSession of SFSafariViewController |
| Android | Chrome Custom Tabs (androidx.browser) |
| Telegram-bot | Inline-knop met een link naar checkout_url |
| Niet gebruiken | iframe, WKWebView, WebView: geen adresbalk (phishing is niet te onderscheiden) en links naar wallets werken onbetrouwbaar. De pagina verbiedt insluiten (frame-ancestors 'none') |
Mobiele appsDe app roept de Coinetic-API niet rechtstreeks aan en bewaart het secret van de sleutel niet — dat haalt iemand binnen enkele minuten uit de build. Uw server maakt de factuur aan op verzoek van de app en geeft de app alleen de
checkout_url.De klant terugsturen
- De klant kan terugkeren vóór de betaling, tijdens de bevestigingen of helemaal niet. Uw orderpagina mag daar niet van afhangen.
- In de
return_urlkunt u het ordernummer meegeven, maar haal de status uit uw eigen database — die wordt bijgewerkt door de webhook. Is de order nog niet betaald, controleer dan opnieuw viaGET /v1/invoices/{id}. - Geef voor apps een universele link mee (Universal Links / App Links):
https://shop.example/app/orders/ORDER-1001. Eigen schema's (myapp://) worden niet geaccepteerd.
Veelvoorkomende situaties
| Situatie | Wat te doen |
|---|---|
| De klant heeft het tabblad gesloten | Zet in de order een link ‘Doorgaan naar betalen’ naar checkout_url — de factuur blijft geldig tot expires_at |
| De factuur is verlopen | Een nieuwe factuur met een nieuw order_id (bijvoorbeeld ORDER-1001-2) en een nieuwe Idempotency-Key |
| Onderbetaling | ‘Betaal het restant bij op hetzelfde adres’ — de betaalpagina toont het resterende bedrag |
| Betaling na de vervaldatum | Het geld is ontvangen, de beslissing ligt bij u: de order leveren of een terugbetaling doen |
| AML-controle | Laat de klant weten dat de betaling wordt gecontroleerd; wacht op invoice.paid |