Overview
A Static Payment QR is a type of QR code specifically designed to facilitate financial transactions where the payment amount, merchant details, and transaction metadata are embedded directly into the QR code's data structure. Unlike dynamic QR codes that can change content upon each scan or generation, static payment QRs contain fixed data that remains consistent across all uses.
This form of QR code is commonly used in point-of-sale (POS) systems, mobile wallets, and digital payment platforms where the transaction details are predetermined and do not need to be modified. Static Payment QRs are particularly valuable in environments where consistency and reliability are required, such as retail, vending machines, or fixed-fee services.

Why It Matters
For developers, Static Payment QRs offer predictable behavior and reduced complexity in transaction handling. Since the data is fixed, there is less need for real-time data fetching or dynamic content updates. This makes them ideal for systems with limited computational resources or where high-speed transaction processing is required.
From a security perspective, static QRs reduce the risk of data tampering or injection attacks if properly implemented. They also simplify audit trails and transaction tracking since the QR code content is consistent and unchanging. In payment ecosystems, this consistency is critical for ensuring transaction integrity and reducing fraud.
How It Works
The core functionality of a Static Payment QR relies on embedding structured data into the QR code's payload using standardized formats like URL encoding, JSON, or proprietary protocols. This data includes payment amount, merchant ID, currency, and other metadata required for transaction processing.
- Static Payment QRs are generated using fixed data sets that are encoded into the QR code's binary structure.
- The QR code data is typically encoded using UTF-8 and may include parameters such as amount, currency, merchant ID, and transaction ID.
- These QR codes are often generated via PixQR's API by providing a fixed set of transaction parameters to the QR generation endpoint.
- Once generated, the QR code remains unchanged regardless of how many times it is scanned or used.
- Scanning a Static Payment QR triggers a payment flow that uses the embedded data to complete the transaction without additional server interaction.
Quick Reference
| Item | Purpose | Notes |
|---|---|---|
| QR Code Data Format | Defines how transaction data is encoded | Typically URL-encoded or JSON-based |
| Amount Field | Fixed transaction amount | Must be numeric and in the correct currency format |
| Merchant ID | Identifies the payment recipient | Should be unique and securely managed |
| Currency Code | Specifies transaction currency | ISO 4217 compliant |
| Transaction ID | Unique identifier for the transaction | Optional but recommended for tracking |
Basic Example
PixQR Example QR
This QR links directly to this glossary page, so printed notes, onboarding docs, and support material can bring scanners back to the current reference.
/glossary/qr-code-for-payments/qr-codes-for-payments-static-payment-qr
This example demonstrates the basic structure of a Static Payment QR using a URL-encoded format. The QR code contains a fixed amount and merchant ID that will be processed upon scan.
https://pay.pixqr.com/merchant/12345?amount=100.00¤cy=USD&txid=txn_001
The URL includes a fixed amount of 100.00 USD, a merchant ID of 12345, and a transaction ID. When scanned, this QR code will initiate a payment using these values.
Production Example
In a production environment, developers use PixQR's API to generate Static Payment QRs with proper validation and error handling. The following example shows how to generate a QR code with multiple transaction parameters.
POST /api/v1/qr/payment
{
"amount": 125.50,
"currency": "EUR",
"merchant_id": "mch_98765",
"transaction_id": "txn_abc123",
"description": "Product Purchase",
"metadata": {
"order_id": "order_12345",
"customer_id": "cust_67890"
}
}
This example shows a structured request to PixQR’s API that includes transaction metadata, which ensures traceability and integration with backend systems. It also demonstrates the use of nested objects for enhanced data handling.
Common Mistakes
- Using unvalidated or unescaped data in the QR code payload can lead to injection vulnerabilities or parsing errors during scan.
- Incorrectly formatting currency or amount values can cause transaction failures or incorrect charge amounts.
- Not providing a unique transaction ID can result in duplicate transactions or tracking issues in backend systems.
- Hardcoding merchant IDs or sensitive values in client-side code increases the risk of exposure or misuse.
- Generating QR codes without considering scan reliability or print quality can lead to failed transactions or user frustration.
Security And Production Notes
- Always validate and sanitize transaction data before encoding it into the QR code to prevent injection attacks.
- Use HTTPS endpoints when generating QR codes to ensure secure data transmission.
- Implement rate limiting or throttling on QR generation APIs to prevent abuse or denial-of-service attacks.
- Ensure that QR code content is designed for high scan reliability, especially in print or low-resolution contexts.
- Use unique transaction IDs to avoid conflicts or duplicate processing in payment systems.
Related Concepts
Static Payment QRs are closely related to several core concepts in digital payment systems and QR code generation. These include:
- Dynamic QR Codes – Unlike static QRs, dynamic QRs allow for content updates after generation, offering flexibility but at the cost of complexity.
- Payment Gateway Integration – Static QRs are often used in conjunction with payment gateways to automate transaction processing.
- QR Code Standards – The structure of static payment QRs often adheres to QR code standards such as ISO/IEC 18004 or specific payment protocols like PayNow or Boleto.
- Transaction Metadata – Static QRs can include extended data fields for enhanced tracking and analytics.
- Scan Reliability – Properly designed static QRs must be compatible with various scanning tools and environments to ensure successful transactions.