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

Invoice, rendered by oJo with its first sample

Variables

  • currencytext
    USD
  • customer.addresstext
    1200 Market Street, Floor 4
  • customer.citytext
    San Francisco, CA 94102, United States
  • customer.contacttext
    Attn: Accounts Payable
  • customer.emailtext
  • customer.nametext
    Acme Inc.
  • customer.taxIdtext
  • invoice.dueDatetext
    2026-10-31
  • invoice.issueDatetext
    2026-10-01
  • invoice.numbertext
    INV-2026-0142
  • invoice.referencetext
    PO 7730-A
  • issuer.addresstext
    500 Congress Ave, Suite 1200
  • issuer.citytext
    Austin, TX 78701, United States
  • issuer.emailtext
  • issuer.logoUrltext
    data: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%3E
  • issuer.nametext
    Initech Cloud, Inc.
  • issuer.taxIdtext
    EIN 88-4410273
  • items[].amountnumber
    588
  • items[].descriptiontext
    Team plan, 12 seats
  • items[].detailtext
    October 1 to October 31, 2026
  • items[].quantitynumber
    12
  • items[].unitPricenumber
    49
  • notestext
    Thank you for your business. Questions about this invoice: [email protected].
  • payment.instructionstext
    Pay by card or ACH at the link above, or by wire to Initech Cloud, Inc., First Republic Example Bank, routing 000000000, account 0000123456.
  • payment.termstext
    Net 30
  • payment.urltext
    https://pay.initech.example/i/INV-2026-0142
  • totals.amountDuenumber
    1194.21
  • totals.amountPaidnumber
    0
  • totals.discountnumber
    58.8
  • totals.discountLabeltext
    Partner discount (10% on Team plan)
  • totals.subtotalnumber
    1162
  • totals.taxnumber
    91.01
  • totals.taxLabeltext
    Sales tax (8.25%)
  • totals.totalnumber
    1194.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

Related templates

All templates
Invoice - oJo