Professional Invoice template preview
Invoices

Professional Invoice

Professional invoice template with dynamic data binding. Generate branded invoices via API or editor.

Added February 8, 2026
Invoices
View Pricing
  • Professional invoice layout with company branding
  • Dynamic line-item table with auto-expanding rows
  • Tax calculation and subtotal fields built in
  • Fully customizable via drag-and-drop editor

+6 more features below

What This Invoice PDF Template Includes

This invoice template gives you a complete, ready-to-use document layout built for real business use. The design includes a branded header with your company name and contact details, a clear invoice metadata section (number, date, due date), separate billing and shipping address blocks, a dynamic line-item table that expands to fit any number of rows, and a totals section with subtotal, discount, tax, and total due. A QR code in the footer links directly to your payment page.

Every text field supports data binding, which means the template automatically fills in values from the JSON payload you send — no manual editing required.

Why Use an API-Based Invoice Template

Static invoice templates created in Word or Google Docs break the moment you need to generate more than a handful of documents. You end up copying, pasting, and inevitably making mistakes — wrong totals, outdated addresses, mismatched formatting.

An API-based template eliminates all of that. You send a single POST request with your invoice data, and Typcraft returns a pixel-perfect PDF in under a second. Integrate it into your billing pipeline or trigger it from a webhook — the template handles the layout while your system handles the data.

Customization Options

This template is fully editable in the Typcraft visual editor. You can:

  • Update company name, address, and contact details to match your brand identity
  • Adjust fonts, colors, and spacing to align with your brand guidelines
  • Add or remove columns in the line-item table (e.g. add a tax-per-line column)
  • Toggle optional sections like shipping address, discount line, or payment details
  • Change the currency symbol and number format for international invoices
  • Add conditional content blocks that appear only when certain fields are present

How to Integrate This Invoice Template

  1. Visual editor — Open the template in the Typcraft editor, customize the design, and download individual PDFs directly from the preview panel.
  2. REST API — Send a POST request to the generate endpoint with your template ID and a JSON body containing the invoice data. The API returns the PDF as a binary stream, ready to save, email, or store in your system.

Template Features

Professional invoice layout with company branding
Dynamic line-item table with auto-expanding rows
Tax calculation and subtotal fields built in
Fully customizable via drag-and-drop editor
Generate invoices via REST API in under a second
Multi-currency and localization support
Conditional fields for discounts and notes
High-resolution PDF output with crisp typography
Works with any JSON data source for flexible integration
Version control to pin templates to a specific release

Who Is This For?

Freelancers and consultants billing clients for project work
SaaS companies generating subscription invoices automatically
E-commerce platforms creating order invoices at checkout
Accounting teams producing monthly billing documents
Agencies invoicing multiple clients with different rate structures
Developers integrating invoice generation into payment workflows
Small businesses replacing manual Word or Excel invoicing
Finance departments standardizing invoice formatting across divisions

API Integration

Generate documents programmatically using our REST API

cURL
curl -X POST https://typcraft.com/api/v1/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "47805402-c8d6-4390-8db5-3f901e25277c",
    "format": "pdf",
    "sync": true,
    "data": {
      "company": {
        "name": "Nexus Technologies Inc.",
        "address": "350 Innovation Drive, Suite 200\nSan Francisco, CA 94107",
        "contact": "[email protected]  |  +1 (415) 555-0147"
      },
      "invoice": {
        "number": "INV-2024-0042",
        "date": "January 15, 2024",
        "dueDate": "February 14, 2024"
      },
      "client": {
        "name": "James Rodriguez",
        "company": "Meridian Software Ltd.",
        "address": "800 Startup Lane, Floor 12\nPalo Alto, CA 94301",
        "email": "[email protected]"
      },
      "shipping": {
        "name": "Meridian Software Ltd.",
        "company": "Engineering Dept.",
        "address": "800 Startup Lane, Floor 12\nPalo Alto, CA 94301"
      },
      "items": [
        {
          "description": "Website Development",
          "quantity": "1",
          "unitPrice": "$8,500.00",
          "amount": "$8,500.00"
        },
        {
          "description": "UI/UX Design",
          "quantity": "1",
          "unitPrice": "$4,200.00",
          "amount": "$4,200.00"
        }
      ],
      "totals": {
        "subtotal": "$12,700.00",
        "discountLabel": "Discount (5%)",
        "discount": "- $635.00",
        "taxLabel": "Tax (10%)",
        "tax": "$1,206.50",
        "total": "$13,271.50"
      },
      "notes": "Payment is due within 30 days.",
      "payment": {
        "bankName": "Silicon Valley Bank",
        "accountName": "Nexus Technologies Inc.",
        "accountNumber": "****-****-7890",
        "routingNumber": "121-000-248"
      },
      "qrValue": "https://pay.nexustech.io/inv/2024-0042"
    }
  }' \
  --output invoice.pdf

Template Data Fields

This template accepts the following data fields for customization:

{
  "fields": {
    "client": {
      "properties": {
        "address": {
          "description": "Client billing address",
          "required": true,
          "type": "string"
        },
        "company": {
          "description": "Client company name",
          "type": "string"
        },
        "email": {
          "description": "Client email address",
          "type": "string"
        },
        "name": {
          "description": "Client contact name",
          "required": true,
          "type": "string"
        }
      },
      "required": true,
      "type": "object"
    },
    "company": {
      "properties": {
        "address": {
          "description": "Full street address with city, state, ZIP",
          "required": true,
          "type": "string"
        },
        "contact": {
          "description": "Email and phone on one line",
          "type": "string"
        },
        "name": {
          "description": "Company or business name",
          "required": true,
          "type": "string"
        }
      },
      "required": true,
      "type": "object"
    },
    "invoice": {
      "properties": {
        "date": {
          "description": "Issue date",
          "required": true,
          "type": "string"
        },
        "dueDate": {
          "description": "Payment due date",
          "required": true,
          "type": "string"
        },
        "number": {
          "description": "Invoice number (e.g. INV-2024-0042)",
          "required": true,
          "type": "string"
        }
      },
      "required": true,
      "type": "object"
    },
    "items": {
      "items": {
        "properties": {
          "amount": {
            "description": "Line total",
            "required": true,
            "type": "string"
          },
          "description": {
            "description": "Line item description",
            "required": true,
            "type": "string"
          },
          "quantity": {
            "description": "Quantity",
            "required": true,
            "type": "string"
          },
          "unitPrice": {
            "description": "Price per unit",
            "required": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "required": true,
      "type": "array"
    },
    "notes": {
      "description": "Payment terms, notes, or special instructions",
      "type": "string"
    },
    "payment": {
      "properties": {
        "accountName": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "bankName": {
          "type": "string"
        },
        "routingNumber": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "qrValue": {
      "description": "URL or data encoded in the QR code",
      "type": "string"
    },
    "shipping": {
      "properties": {
        "address": {
          "description": "Shipping address",
          "type": "string"
        },
        "company": {
          "description": "Shipping company",
          "type": "string"
        },
        "name": {
          "description": "Shipping contact name",
          "type": "string"
        }
      },
      "type": "object"
    },
    "totals": {
      "properties": {
        "discount": {
          "description": "Discount amount with minus sign",
          "type": "string"
        },
        "discountLabel": {
          "description": "e.g. Discount (5%)",
          "type": "string"
        },
        "subtotal": {
          "required": true,
          "type": "string"
        },
        "tax": {
          "type": "string"
        },
        "taxLabel": {
          "description": "e.g. Tax (10%)",
          "type": "string"
        },
        "total": {
          "description": "Final amount due",
          "required": true,
          "type": "string"
        }
      },
      "required": true,
      "type": "object"
    }
  },
  "sampleData": {
    "client": {
      "address": "800 Startup Lane, Floor 12\nPalo Alto, CA 94301",
      "company": "Meridian Software Ltd.",
      "email": "[email protected]",
      "name": "James Rodriguez"
    },
    "company": {
      "address": "350 Innovation Drive, Suite 200\nSan Francisco, CA 94107\nUnited States",
      "contact": "[email protected]  |  +1 (415) 555-0147",
      "name": "Nexus Technologies Inc."
    },
    "invoice": {
      "date": "January 15, 2024",
      "dueDate": "February 14, 2024",
      "number": "INV-2024-0042"
    },
    "items": [
      {
        "amount": "$8,500.00",
        "description": "Website Development\nFull-stack Next.js application with CMS",
        "quantity": "1",
        "unitPrice": "$8,500.00"
      },
      {
        "amount": "$4,200.00",
        "description": "UI/UX Design\nWireframes, prototypes, and design system",
        "quantity": "1",
        "unitPrice": "$4,200.00"
      },
      {
        "amount": "$3,800.00",
        "description": "API Integration\nPayment gateway and third-party services",
        "quantity": "1",
        "unitPrice": "$3,800.00"
      },
      {
        "amount": "$2,200.00",
        "description": "Database Architecture\nPostgreSQL schema design and optimization",
        "quantity": "1",
        "unitPrice": "$2,200.00"
      },
      {
        "amount": "$1,000.00",
        "description": "QA & Testing\nEnd-to-end testing and performance audits",
        "quantity": "20",
        "unitPrice": "$50.00"
      }
    ],
    "notes": "Payment is due within 30 days of the invoice date.\nA late fee of 1.5% per month will apply to overdue balances.\nPlease reference the invoice number on all correspondence.",
    "payment": {
      "accountName": "Nexus Technologies Inc.",
      "accountNumber": "****-****-7890",
      "bankName": "Silicon Valley Bank",
      "routingNumber": "121-000-248"
    },
    "qrValue": "https://pay.nexustech.io/inv/2024-0042",
    "shipping": {
      "address": "800 Startup Lane, Floor 12\nPalo Alto, CA 94301",
      "company": "Engineering Dept.",
      "name": "Meridian Software Ltd."
    },
    "totals": {
      "discount": "−$985.00",
      "discountLabel": "Discount (5%)",
      "subtotal": "$19,700.00",
      "tax": "$1,871.50",
      "taxLabel": "Tax (10%)",
      "total": "$20,586.50"
    }
  },
  "version": 1
}

How to Use This Template

Three simple steps to get started

1

Choose & Customize

Click "Use This Template" to create your own copy. Customize colors, fonts, and layout using our visual editor.

2

Add Your Data

Define data fields for dynamic content. Connect your data via API, CSV upload, or manual entry.

3

Generate Documents

Generate hundreds or thousands of personalized PDFs instantly. Download or integrate via our API.

Frequently Asked Questions

Everything you need to know

Create your own templates

Design custom document templates with our visual editor. Generate thousands of documents with your data.