Invoice
Render one per payment or billing period from your billing system, with line items over as many pages as they need, tax, amount due and a payment link.
PDF, A4, from 1 credit
Output

Variables
currencytextUSDcustomer.addresstext1200 Market Street, Floor 4customer.citytextSan Francisco, CA 94102, United Statescustomer.contacttextAttn: Accounts Payablecustomer.emailtextcustomer.nametextAcme Inc.customer.taxIdtextinvoice.dueDatetext2026-10-31invoice.issueDatetext2026-10-01invoice.numbertextINV-2026-0142invoice.referencetextPO 7730-Aissuer.addresstext500 Congress Ave, Suite 1200issuer.citytextAustin, TX 78701, United Statesissuer.emailtextissuer.logoUrltextdata:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 44 44%22%3E%3Crect width=%2244%22 height=%2244%22 rx=%229%22 fill=%22%232f4fb3%22/%3E%3Cpath d=%22M15 12v20M22 12v20M29 12v20%22 stroke=%22%23fff%22 stroke-width=%223%22 fill=%22none%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3Eissuer.nametextInitech Cloud, Inc.issuer.taxIdtextEIN 88-4410273items[].amountnumber588items[].descriptiontextTeam plan, 12 seatsitems[].detailtextOctober 1 to October 31, 2026items[].quantitynumber12items[].unitPricenumber49notestextThank you for your business. Questions about this invoice: [email protected].payment.instructionstextPay by card or ACH at the link above, or by wire to Initech Cloud, Inc., First Republic Example Bank, routing 000000000, account 0000123456.payment.termstextNet 30payment.urltexthttps://pay.initech.example/i/INV-2026-0142totals.amountDuenumber1194.21totals.amountPaidnumber0totals.discountnumber58.8totals.discountLabeltextPartner discount (10% on Team plan)totals.subtotalnumber1162totals.taxnumber91.01totals.taxLabeltextSales tax (8.25%)totals.totalnumber1194.21
Send any of these in modify. Anything you leave out prints the sample value, and the response lists it in warnings.
Render it
Save the template to your account first. Saving gives you its ID.
curl --request POST \
--url https://api.ojo.so/v1/pdf/template \
--header 'Authorization: Bearer <your API key>' \
--header 'Content-Type: application/json' \
--data '{
"templateId": "<YOUR_TEMPLATE_ID>",
"modify": {
"currency": "USD",
"invoice": {
"number": "INV-2026-0142",
"issueDate": "2026-10-01",
"dueDate": "2026-10-31"
}
}
}'What's included
- Line items over several pages
- Any currency
- Payment link and terms


