Skip to main content

Quickstart

This guide walks you through creating a payment intent, rendering a QR code, and receiving a webhook when the customer pays. The entire integration is two API calls.
The Stable Genius API is currently in private beta. Request early access to get your API keys.

Prerequisites

  • A Stable Genius account with API keys (sk_test_... for sandbox, sk_live_... for production)
  • A merchant onboarded through the Stable Genius dashboard with KYC completed and bank account linked
  • Your webhook endpoint URL registered in the dashboard

Step 1: Create a Payment Intent

When a customer is ready to pay, create a payment intent. This returns a payment address and QR code payload that the customer scans with their wallet.

Response

Step 2: Display the QR Code

Render the QR code on your terminal, app, or checkout page. You have two options: Option A: Render the QR payload yourself — Use qr_payload with any QR code library. This is the EIP-681 standard that wallets like Coinbase Wallet and MetaMask understand natively. Option B: Use our hosted QR image — Display qr_image_url directly as an image. No QR library needed.
The customer scans the QR code with their wallet (Coinbase Wallet, MetaMask, Phantom, etc.), sees the pre-filled transfer, and taps confirm.

Step 3: Receive the Webhook

When the payment confirms on-chain, we send a payment_intent.confirmed event to your registered webhook URL:
Your system processes the webhook and marks the order as paid:
That’s it. The merchant’s funds settle automatically to their bank account on the configured withdrawal schedule. You don’t manage wallets, watch blockchains, or handle settlements.

Next Steps

Payment Intents

Understand the full payment intent lifecycle

Webhooks

Learn about all webhook events and verification

Testing

Set up your sandbox environment

POS Integration

Build a terminal integration step-by-step