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

  1. Het orderbedrag en een timer met de looptijd van de factuur.
  2. Een keuze van de valuta — alleen de assets van de factuur die op dat moment beschikbaar zijn.
  3. 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).
  4. De status werkt zichzelf bij: ‘Betaling gevonden’ → ‘Bevestigingen 7/20’ → ‘Betaling ontvangen’.
  5. 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

WaarHoe
WebsiteDoorsturen in hetzelfde tabblad: 303 See Other vanaf uw server of location.href
iOSASWebAuthenticationSession of SFSafariViewController
AndroidChrome Custom Tabs (androidx.browser)
Telegram-botInline-knop met een link naar checkout_url
Niet gebruikeniframe, 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_url kunt 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 via GET /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

SituatieWat te doen
De klant heeft het tabblad geslotenZet in de order een link ‘Doorgaan naar betalen’ naar checkout_url — de factuur blijft geldig tot expires_at
De factuur is verlopenEen 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 vervaldatumHet geld is ontvangen, de beslissing ligt bij u: de order leveren of een terugbetaling doen
AML-controleLaat de klant weten dat de betaling wordt gecontroleerd; wacht op invoice.paid