QR code types
| Type | Description |
|---|---|
STATIC | Fixed amount, reusable — ideal for regular charges |
DYNAMIC | Variable amount with optional max limit — ideal for one-time payments |
API reference
Base path:/api/v1/projects/{projectId}/qr-codes
Create a QR code
Fields
| Field | Type | Required | Description |
|---|---|---|---|
type | enum | ✅ | STATIC or DYNAMIC |
name | string | ✅ | QR code name |
description | string | ❌ | Description for reference |
fixedAmount | number | ❌ | Fixed amount for STATIC QR (minimum 100) |
maxAmount | number | ❌ | Maximum amount for DYNAMIC QR (minimum 100) |
expiresAt | string | ❌ | Expiration date (ISO 8601) |
Available endpoints
| Method | Endpoint | Description |
|---|---|---|
POST | / | Create a QR code |
GET | / | List all QR codes for a project |
GET | /{id} | Get a single QR code |
PUT | /{id} | Update a QR code |
DELETE | /{id} | Delete a QR code |
GET | /{id}/image | Generate QR code image (data URL) |
Public endpoints (no authentication)
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/qr/{shortCode} | Get QR code details by short code |
POST | /api/v1/qr/{shortCode}/scan | Record a QR code scan |
QR code statuses
| Status | Description |
|---|---|
ACTIVE | Currently accepting payments |
PAUSED | Temporarily disabled |
EXPIRED | Past the expiration date |
REVOKED | Permanently disabled |
Response fields
Each QR code includes auto-generated tracking data:| Field | Description |
|---|---|
shortCode | Unique short identifier (e.g. ABC123) |
scanCount | Number of times scanned |
lastScannedAt | Timestamp of last scan |
QR code payments require the
qrCodes plan feature to be enabled. See Plans & billing for details.
