Generate EPC-compliant QR codes for SEPA payments with our fast, secure, and scalable API service.
Bank-grade security with IBAN validation, rate limiting, and comprehensive audit logs.
Sub-50ms response times with intelligent caching and global CDN distribution.
Choose from various QR code styles including rounded, circle, SVG, and custom colors.
Comprehensive usage analytics, billing insights, and API performance metrics.
Full EPC compliance for SEPA payments across all European countries.
Priority support with dedicated account managers for enterprise customers.
Choose the plan that fits your needs. Upgrade or downgrade anytime.
Your QR code will appear here
Welcome to the QR Code API documentation. This guide will help you integrate our QR code generation service into your applications.
https://api.qrcode-service.com/api
To get started with our API, you'll need:
All API requests require authentication using an API key. Include your API key in the request headers:
X-API-Key: your_api_key_here
curl -X POST https://api.qrcode-service.com/api/qrcode/generate/epc/ \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"iban": "DE89370400440532013000", "name": "John Doe", "amount": 100.50}'
/api/qrcode/generate/epc/
Generate an EPC-compliant QR code for SEPA payments.
| Parameter | Type | Required | Description |
|---|---|---|---|
iban |
string | Yes | Valid IBAN (International Bank Account Number) |
bic |
string | No | Bank Identifier Code (SWIFT code) |
name |
string | Yes | Recipient name (max 70 characters) |
amount |
number | No | Payment amount in EUR (0.01 - 999999999.99) |
reference |
string | No | Payment reference (max 140 characters) |
text |
string | No | Remittance information (max 140 characters) |
style |
string | No | QR code style: "default", "rounded", "circle", "svg" |
size |
integer | No | QR code size in pixels (100-1000, default: 300) |
fill_color |
string | No | Foreground color in hex format or color name (default: #000000) |
back_color |
string | No | Background color in hex format or color name (default: #FFFFFF) |
Returns a PNG image of the generated QR code (or SVG if style="svg").
Content-Type: image/png Content-Disposition: inline; filename="qr_code.png" [Binary PNG data]
The API uses standard HTTP status codes to indicate success or failure of requests.
| Code | Description |
|---|---|
200 OK |
Request succeeded |
400 Bad Request |
Invalid request parameters |
401 Unauthorized |
Missing or invalid API key |
403 Forbidden |
API key is valid but lacks permissions |
429 Too Many Requests |
Rate limit exceeded |
500 Internal Server Error |
Server error |
{
"error": "Invalid IBAN format",
"field": "iban",
"code": "INVALID_IBAN"
}
curl -X POST https://api.qrcode-service.com/api/qrcode/generate/epc/ \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX",
"name": "John Doe",
"amount": 100.50,
"reference": "INV-2024-001",
"text": "Payment for services",
"style": "rounded",
"size": 400,
"fill_color": "#0066CC",
"back_color": "#FFFFFF"
}' \
--output qrcode.png
import requests
url = "https://api.qrcode-service.com/api/qrcode/generate/epc/"
headers = {
"X-API-Key": "your_api_key_here",
"Content-Type": "application/json"
}
data = {
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX",
"name": "John Doe",
"amount": 100.50,
"reference": "INV-2024-001",
"text": "Payment for services",
"style": "rounded",
"size": 400,
"fill_color": "#0066CC",
"back_color": "#FFFFFF"
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
with open("qrcode.png", "wb") as f:
f.write(response.content)
print("QR code saved as qrcode.png")
else:
print(f"Error: {response.status_code}")
print(response.json())
const axios = require('axios');
const fs = require('fs');
const generateQRCode = async () => {
try {
const response = await axios.post(
'https://api.qrcode-service.com/api/qrcode/generate/epc/',
{
iban: 'DE89370400440532013000',
bic: 'COBADEFFXXX',
name: 'John Doe',
amount: 100.50,
reference: 'INV-2024-001',
text: 'Payment for services',
style: 'rounded',
size: 400
},
{
headers: {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
},
responseType: 'arraybuffer'
}
);
fs.writeFileSync('qrcode.png', response.data);
console.log('QR code saved as qrcode.png');
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
};
generateQRCode();
<?php
$url = 'https://api.qrcode-service.com/api/qrcode/generate/epc/';
$data = [
'iban' => 'DE89370400440532013000',
'bic' => 'COBADEFFXXX',
'name' => 'John Doe',
'amount' => 100.50,
'reference' => 'INV-2024-001',
'text' => 'Payment for services',
'style' => 'rounded',
'size' => 400
];
$options = [
'http' => [
'header' => [
'X-API-Key: your_api_key_here',
'Content-Type: application/json'
],
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result !== false) {
file_put_contents('qrcode.png', $result);
echo 'QR code saved as qrcode.png';
} else {
echo 'Error generating QR code';
}
?>
API rate limits vary by subscription plan:
| Plan | Rate Limit | Monthly QR Codes |
|---|---|---|
| Free | 10 requests/minute | 100 |
| Silver | 50 requests/minute | 1,000 |
| Gold | 100 requests/minute | 10,000 |
| Platinum | 500 requests/minute | 100,000 |
The API returns rate limit information in response headers:
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1640995200
X-RateLimit-Limit: Maximum requests allowed per minuteX-RateLimit-Remaining: Requests remaining in current windowX-RateLimit-Reset: Unix timestamp when the rate limit resetsDon't have an account? Sign up here
Forgot your password? Reset it here
Already have an account? Login here
Remember your password? Back to login
We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.
Read our Cookie PolicyWe use different types of cookies to optimize your experience. Choose which cookies you want to allow.
These cookies are essential for the website to function properly. They enable basic functions like page navigation and access to secure areas.
These cookies enable the website to provide enhanced functionality and personalization, such as remembering your preferences.
These cookies help us understand how visitors interact with our website by collecting and reporting information anonymously.
These cookies are used to track visitors across websites to display ads that are relevant and engaging.
Cookies are small text files that are placed on your device when you visit our website. They help us provide you with a better experience by remembering your preferences and understanding how you use our site.
We use cookies for the following purposes:
You can choose which cookies you want to accept. However, please note that blocking some types of cookies may impact your experience on our website.
You can manage your cookie preferences at any time by clicking the "Cookie Settings" link in the footer of our website. You can also manage cookies through your browser settings.
If you have any questions about our use of cookies, please contact us at privacy@qrcode-saas.com
Your payment has been successfully processed and your subscription has been activated.
Your account has been upgraded and you now have access to all premium features.