Help & Support
Get answers to common questions and find support resources.
Frequently Asked Questions
Getting Started
How do I get an API key?
How do I test without using my quota?
Add "isTest": true
to your request body:
{
"customer": "Test Customer",
"isTest": true
}
Test mode gives you 10 free PDF generations per day with a watermark.
Technical Questions
What’s the difference between sync and async modes?
Mode | Response Time | Response Type | Use Case |
---|---|---|---|
Sync | 100-2000ms* | PDF binary | Real-time generation |
Async | < 50ms | Request ID | Batch processing |
Use async mode with Prefer: respond-async
header for better performance.
*Response times are typical but not guaranteed and may vary based on system load.
How do webhooks work?
Webhooks notify you when async PDF generation completes:
- Configure webhook URL in dashboard
- Make async API request
- Receive webhook with PDF URL when ready
Note: Webhooks only fire for async requests.
What are the size limits?
- Request body: 1 MB maximum
- Generated PDF: 50 MB maximum
- Processing timeout: 30 seconds (sync mode)
- Template size: 10 MB maximum
Billing & Plans
What happens when I exceed my plan’s included renders?
When you exceed your monthly quota, please upgrade your plan to continue generating PDFs. You can upgrade at any time through your dashboard.
Can I change or cancel my plan?
Yes, you can change or cancel anytime:
- Upgrade: Takes effect immediately with prorated billing
- Downgrade: Takes effect at next billing cycle
- Cancel: Retain access until end of current period
Do unused renders roll over?
No, unused renders don’t roll over to the next month. Your quota resets at the start of each billing cycle.
Troubleshooting
Why am I getting a 401 Unauthorized error?
Check these common issues:
- API key format: Must start with
sk_live_
- Authorization header:
Bearer sk_live_xxx
- API key is active (not revoked)
- API key matches your organization
Why is my PDF not generating correctly?
Common issues:
- Missing data: Check all required fields are provided
- Invalid placeholders: Ensure
{{field}}
names match exactly - Template errors: Validate template syntax
- Encoding issues: Use UTF-8 encoding
Enable debug mode for detailed errors:
curl -H "X-Debug-Mode: true" ...
Why aren’t my webhooks firing?
Webhooks only fire for async requests. Ensure:
- You’re using
Prefer: respond-async
header - Webhook URL is publicly accessible HTTPS
- Your endpoint returns 2xx status code
- Check webhook logs in dashboard
Error Codes Reference
Quick lookup for common error codes:
Code | Meaning | Solution |
---|---|---|
invalid_api_key | API key format incorrect | Check key starts with sk_live_ |
template_not_found | Template doesn’t exist | Verify endpoint path |
validation_failed | Data doesn’t match schema | Check required fields |
monthly_limit_exceeded | Quota exceeded | Upgrade plan |
test_limit_exceeded | Daily test limit hit | Wait until midnight UTC |
Support Channels
Documentation
Get Help
- Email: support@doczap.app
- Response Time: Within 24 hours (business days)
- Priority Support: Available on Scale plan
Include your request ID (from X-Request-ID
header) when contacting support for faster resolution.
Still Need Help?
If you can’t find an answer:
- Search our documentation
- Email support@doczap.app with:
- Your request ID or error message
- Steps to reproduce the issue
- Expected vs actual behavior
We’re here to help you succeed with doczap!