Skip to main content
Use this guide to implement a production wallet flow where the frontend handles wallet UX and your backend performs Core API calls. The core contract is simple: capture encrypted payload.card_data in onCapture and forward it unchanged to your server.

Flow Overview

  1. Initialize SDK in the frontend
  2. Create a transaction
  3. Mount wallet buttons
  4. On capture, send encrypted data to backend
  5. Backend creates transaction in Rinne API
Forward payload.card_data as encrypted secure data to your backend. Avoid logging sensitive payload fields in plaintext logs.

Frontend Implementation

checkout.ts

Backend Example (Node.js)

server.ts
Never call Rinne transaction APIs directly from the browser. Keep your API key server-side.

Verification Checklist

Wallet checkout is correctly implemented when:
  • onCapture sends encrypted payloads to your backend
  • Backend creates transaction with your API key
  • fail() is called whenever backend processing fails
  • If transaction status is AWAITING_3DS, your checkout continues with the 3DS flow