Invoice PDF API

From billing data to a branded invoice PDF.

Generate invoices with the Prism blueprint or your own JayCode layout. Send seller details, customer information, line items, and totals as structured JSON.

Build the invoice once. Supply new data each time.

  1. Choose the layout

    Use the public Prism invoice blueprint shown below, or create a blueprint for your own invoice design.

  2. Map your billing data

    Provide parties, dates, items, and monetary values in the fields the blueprint expects.

  3. Deliver the invoice

    Handle the completion webhook and retrieve the PDF before sharing it through your billing workflow.

A production invoice payload

This production Prism job includes seller and customer details, a line item, and explicit totals using typed money objects. Inspect or copy the payload below.

Prism invoice job · JSON
{
  "lang": "JayCode",
  "type": "job",
  "blueprint": "public/prism-invoice",
  "vars": {
    "invoiceNumber": "INV-2026-0001",
    "issuedDate": "April 1, 2026",
    "dueDate": "April 30, 2026",
    "currencyUnit": "$",

    "seller": {
      "name": "Acme Technologies, Inc.",
      "address": "50 Fremont Street, Suite 300",
      "city": "San Francisco, CA 94105",
      "email": "billing@acme.example.com",
      "bankName": "First National Bank",
      "bankAccount": "1234567890",
      "bankRouting": "SWIFT: FNBNUS33, ABA: 111000025"
    },

    "customer": {
      "name": "Startup Ventures LLC",
      "address": "350 Fifth Avenue, Floor 12",
      "city": "New York, NY 10118",
      "email": "jane.smith@startup.example.com"
    },

    "items": [
      {
        "description": "Pro plan",
        "quantity": 1,
        "unit": "month",
        "unitPrice": { "type": "money", "value": 16179 },
        "amount": { "type": "money", "value": 16179 },
        "taxRate": "23%"
      }
    ],

    "subtotal": { "type": "money", "value": 16179 },
    "taxAmount": { "type": "money", "value": 3721 },
    "total": { "type": "money", "value": 19900 },

    "notes": "Payment is due within 30 days of the invoice date. Please include the invoice number as a reference on your bank transfer. For billing enquiries contact billing@acme.example.com or call +1 (415) 555-0100.",
    "paymentLink": "https://example.com/invoice/acme-technologies/inv-2026-0009"
  }
}

Understand the fields before adapting the example

Validating a new request?

The production example above omits outputFileName. The published job schema requires it for a single-document job. Add a top-level field such as "outputFileName": "invoice.pdf" to your request when validating against that schema.

blueprint
public/prism-invoice selects the layout used by this payload. For a custom template, use its registered slug.
seller and customer
Business and contact details appear in the invoice. Replace these values with the parties for each document.
items
Each line provides a description, quantity, unit, unit price, amount, and tax rate.
subtotal, taxAmount, total
This job supplies totals explicitly. Preserve the typed money representation expected by this blueprint when adapting the example.
Keep billing rules explicit

This example supplies the amounts; it does not demonstrate automatic tax calculation. A custom blueprint can use Jay expressions for calculations. Test the values and formatting against your billing system.

Make the document your own

Document layout

Adjust margins, headers, footers, and content to suit your invoice. Explore page layout.

For a separate, complete example with associated resources, inspect the sample blueprint and its sample job. Register its blueprint and resources before use.

Build your first document

Start with a blueprint. Make it yours.

Explore working examples, then connect a render job to your application.