Support
How to get help with QR Code Agency. Response times, channels, and what to include in a ticket.
Support
We respond to every email, every business day. The fastest way to unblock yourself is to include the information below in your first message.
Channels
| Channel | When to use |
|---|---|
support@qrstudio.agency | Integration help, billing questions, anything not on fire |
security@qrstudio.agency | Security disclosures (PGP key on the website) |
enterprise@qrstudio.agency | Custom contracts, on-prem, EU data residency |
| status.qrstudio.agency | Incidents, scheduled maintenance |
| GitHub Issues | Bugs in the official TypeScript SDK |
Response time targets
| Plan | First response |
|---|---|
| Free | Best effort, community |
| Starter | 1 business day |
| Pro | 4 hours, business days |
| Agency | 1 hour, 8h to 20h ET, 7 days |
| Enterprise | 15 minutes, 24/7 |
What to include in a ticket
The more of these you give us, the faster we resolve:
- The full request body that misbehaved (redact secrets).
- The response status code, body, and the
X-Request-Idheader. - The
X-QR-PlanandX-QR-Quota-Remainingheader values. - Your API key prefix (the first 12 characters, e.g.
smk_aBc12dEf). Never paste the raw key. - Steps you have already tried.
- Approximate timestamp of the failure (UTC if possible).
A request id alone usually lets us pull the full audit trail and tell you what happened.
Self-service troubleshooting
| Symptom | First thing to check |
|---|---|
| 401 Unauthorized | Key is exact, not rotated, not revoked |
| 403 Forbidden | Plan caps in GET /usage/ |
| 429 Too Many Requests | Retry-After header for rate limit, or X-QR-Quota-Remaining for monthly cap |
| 422 (bulk) | The errors map shows which item index failed and why |
Slow /generate/ | X-QR-Cache: MISS is normal on first call; second call should be HIT |
| Webhook never arrives | Check /webhooks/{id}/deliveries/; confirm your URL is HTTPS and reachable |
| Wrong country in analytics | country comes from CF-IPCountry; XX and T1 are dropped |
Escalation path
- Email
support@qrstudio.agency. Include the items above. - If unanswered within your plan SLA, reply to the same thread with
[ESCALATE]in the subject. - For Agency and Enterprise, you also have a Slack Connect channel.
Mention
@herefor urgent incidents.
Feature requests
We read every feature request. The fastest way to get prioritized:
- Tell us the use case, not the feature: "I need to..." rather than
"Add a
foo_barparameter." - If you can quantify the impact (volume, revenue, customer counts), include it.
- Existing customers on paid plans get priority.
The roadmap snapshot lives at qrstudio.agency/roadmap.
Status page subscriptions
status.qrstudio.agency supports:
- Email notifications
- Webhook posts to your own URL
- RSS
Recommended for any production integration: subscribe to incidents
affecting api.qrstudio.agency and q.qrstudio.agency.
Refunds and overcharges
If you believe an invoice is wrong (overage you cannot explain, duplicate charge, plan mismatch), reply to the Stripe email with the invoice number. We refund undisputed errors within one business day.
For a clean per-call audit trail, join your usage rows with the Stripe invoice line items by timestamp. Every successful render is one quota credit.
Hello in person
We are based in Montreal. If you are around, drop a line:
darius@qrstudio.agency
QR Code Agency is a product by AI for all (the legal entity behind your invoice receipts).