Use case
Use it when your app already has invoice data and needs a branded PDF receipt or invoice without maintaining a PDF template service.
PDF Tools API
Turn invoice JSON into polished PDF invoices from your billing system, admin panel, or automation workflow.
Credits
1 Credit / call
1 Credit per successful API request. Failed processing attempts are refunded automatically.
Pricing
1,000 Credits = $1
Every signed-in user receives 100 free API Credits each month.
Endpoint
/api/external/invoice-generator/pdfUse your API Key in the x-api-key header.
Use it when your app already has invoice data and needs a branded PDF receipt or invoice without maintaining a PDF template service.
curl -X POST https://itextmaster.com/api/external/invoice-generator/pdf \
-H 'x-api-key: YOUR_API_KEY' \
-F 'invoiceNumber=INV-001' \
-F 'fromName=Your Company' \
-F 'billToName=Client Name' \
-F 'items=[{"description":"Consulting","quantity":10,"rate":150}]' \
--output invoice.pdfcurl -X POST https://itextmaster.com/api/external/invoice-generator/pdf \
-H 'x-api-key: YOUR_API_KEY' \
-F 'invoiceNumber=INV-001' \
-F 'fromName=Your Company' \
-F 'billToName=Client Name' \
-F 'items=[{"description":"Consulting","quantity":10,"rate":150}]' \
--output invoice.pdfcurl -X POST https://itextmaster.com/api/external/invoice-generator/pdf \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{
"invoiceNumber": "INV-001",
"from": { "name": "Your Company", "email": "you@example.com" },
"billTo": { "name": "Client Name", "email": "client@example.com" },
"items": [{ "description": "Consulting", "quantity": 10, "rate": 150 }]
}' \
--output invoice.pdfimport { writeFile } from 'node:fs/promises';
const response = await fetch('https://itextmaster.com/api/external/invoice-generator/pdf', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.ITEXTMASTER_API_KEY
},
body: JSON.stringify({
invoiceNumber: 'INV-001',
from: { name: 'Your Company', email: 'you@example.com' },
billTo: { name: 'Client Name', email: 'client@example.com' },
items: [{ description: 'Consulting', quantity: 10, rate: 150 }]
})
});
if (!response.ok) {
throw new Error(await response.text());
}
await writeFile('invoice.pdf', Buffer.from(await response.arrayBuffer()));import os
import requests
response = requests.post(
'https://itextmaster.com/api/external/invoice-generator/pdf',
headers={
'Content-Type': 'application/json',
'x-api-key': os.environ['ITEXTMASTER_API_KEY'],
},
json={
'invoiceNumber': 'INV-001',
'from': {'name': 'Your Company', 'email': 'you@example.com'},
'billTo': {'name': 'Client Name', 'email': 'client@example.com'},
'items': [{'description': 'Consulting', 'quantity': 10, 'rate': 150}],
},
)
response.raise_for_status()
with open('invoice.pdf', 'wb') as f:
f.write(response.content)invalid_invoice_payloadThe invoice JSON payload is malformed or missing required invoice fields.
invalid_api_keyThe x-api-key header is missing, invalid, or has been rotated.
insufficient_creditsThe account does not have enough API Credits for the request.
invoice_pdf_generation_failedInvoice rendering failed. Failed processing attempts are refunded automatically.
invoice.pdf with Credits response headers.
Content-TypeContent-DispositionX-Credits-ChargedX-Credit-BalanceEach successful Invoice Generator API request uses 1 Credit. 1,000 Credits cost $1, and every signed-in user receives 100 free API Credits each month.
Failed processing attempts are refunded automatically, and the API returns an error response you can log or retry.
No. Keep API Keys server-side and call the endpoint from your backend, queue, or automation job when you need to generate invoice PDFs.
Create an API Key, test Invoice Generator API, and buy more Credits only when automation volume grows.