QR code payments let your customers pay by scanning a code with their mobile phone. Perfect for in-store payments, kiosks, and offline scenarios.

QR code types

TypeDescription
STATICFixed amount, reusable — ideal for regular charges
DYNAMICVariable amount with optional max limit — ideal for one-time payments

API reference

Base path: /api/v1/projects/{projectId}/qr-codes

Create a QR code

POST /api/v1/projects/{projectId}/qr-codes

{
  "type": "STATIC",
  "name": "Store Counter",
  "description": "Main counter QR for daily payments",
  "fixedAmount": 2500,
  "expiresAt": "2027-12-31T23:59:59Z"
}

Fields

FieldTypeRequiredDescription
typeenumSTATIC or DYNAMIC
namestringQR code name
descriptionstringDescription for reference
fixedAmountnumberFixed amount for STATIC QR (minimum 100)
maxAmountnumberMaximum amount for DYNAMIC QR (minimum 100)
expiresAtstringExpiration date (ISO 8601)

Available endpoints

MethodEndpointDescription
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}/imageGenerate QR code image (data URL)

Public endpoints (no authentication)

MethodEndpointDescription
GET/api/v1/qr/{shortCode}Get QR code details by short code
POST/api/v1/qr/{shortCode}/scanRecord a QR code scan

QR code statuses

StatusDescription
ACTIVECurrently accepting payments
PAUSEDTemporarily disabled
EXPIREDPast the expiration date
REVOKEDPermanently disabled

Response fields

Each QR code includes auto-generated tracking data:
FieldDescription
shortCodeUnique short identifier (e.g. ABC123)
scanCountNumber of times scanned
lastScannedAtTimestamp of last scan
QR code payments require the qrCodes plan feature to be enabled. See Plans & billing for details.