Generate invoices using the template engine
Overview
Smartcat lets you generate invoices in PDF format. You can use the standard template or create your own templates with the Smartcat Template Engine technology. You can build a single template for all clients or an individual template for each client.
This article describes the data model used to generate invoices in PDF format. You can use these objects and their fields to build custom templates with the Smartcat Template Engine.
Invoice
General invoice details.
| Field name | Data type | Description |
|---|---|---|
| Number | string | Internal invoice number in Smartcat's system |
| ExternalNumber | string | External invoice number |
| DateSent | DateTime | Invoice date |
| DatePaid | DateTime | Payment date |
| Currency | string | Invoice currency |
| TotalCost | decimal | Total cost of all services listed on the invoice |
| AccountId | string | Invoice creator's account ID |
| IsPaid | bool | A boolean value indicating whether the invoice is paid. Returns true if the invoice is paid. |
| PaymentReceiveDestination | A method of receiving invoice payments. Returns Balance (1) if the Smartcat balance is selected as the preferred method, or ExternalBankAccount (2) if the company's external bank account is selected as the preferred method. | |
| TotalCostDescription | string | Total cost of all services spelled out in Russian (for Russian users) |
Example of how to use the Invoice object:
Invoice No. <<[Invoice.Number]>>
Invoice date <<[Invoice.DateSent]>>
InvoiceJobs
A collection of objects containing information on services added to the invoice.
| Field name | Data type | Description |
|---|---|---|
| Cost | decimal | Service cost |
| Currency | string | Service currency |
| JobServiceType | string | Service name |
| ProjectName | string | For services created based on a quote, this field contains the project name as well as the source and target languages. For other services, it contains the description of the service. |
| IsInternalJob | bool | Service type. For services created based on a quote, this field returns true. For other types of services, it returns false. |
Example of how to use the InvoiceJobs collection:
<><<[job.JobServiceType]>><<[job.ProjectName]>><<[job.Cost]>> <<[job.Currency]>><>
VendorLegalEntity
Company details.
| Field name | Data type | Description |
|---|---|---|
| Id | string | Details ID |
| Name | string | Details name |
| Beneficiary | string | Beneficiary |
| AgentReportContactPerson | string | Contact person's name |
| LegalAddress | string | Registered address |
| Vat | string | VAT number or other tax ID |
| CountryCode | string | Country code |
| BankName | string | Bank name |
| BankCode | string | Bank code |
| Swift | string | SWIFT code |
| BankAccount | string | Bank account number |
| AchRouting | string | ACH routing number |
| WireRouting | string | Wire routing number |
| TransitNumber | string | ABA number |
| RegistrationNumber | string | Registration number |
| BankCorrAccount | string | Correspondent bank account number |
| BankCorrBankEn | string | Correspondent bank |
| BankCorrBankRu | string | Correspondent bank in Russian (for Russian users) |
| Iban | string | International bank account number (IBAN) |
| BankAddress | string | Bank address |
| Kpp | string | KPP number (for Russian users) |
| Bic | string | BIK code (for Russian users) |
| SignerFullName | string | Signee's full name |
| SignerPosition | string | Signee's position |
Example of how to use the VendorLegalEntity object:
<<[VendorLegalEntity.Name]>><><<[VendorLegalEntity.LegalAddress]>><>
Customer
Customer details.
| Field name | Data type | Description |
|---|---|---|
| Name | string | Name |
| LegalName | string | Legal company name |
| Address | string | Customer's legal address |
| Website | string | Customer's website |
| Industry | string | Customer's industry |
| Vat | string | VAT number or other tax ID |
| Kpp | string | KPP (КПП — only for Russian legal entities) |
| Country | string | 3-letter country code |
| VendorManager | string | Your manager who works with a client |
| Language | string | Language for communication |
| Comment | string | Comment taken from a client card |
| ContactName | string | Primary contact's name |
| ContactEmail | string | Primary contact's email |
Example of how to use the Customer object:
<<[Customer.Name]>>VAT number / Tax ID: <<[Customer.Vat]>>
FAQs
Do I have to build my own invoice template?
No — Smartcat provides a standard invoice template out of the box. Building a custom template with the Smartcat Template Engine is optional, useful if you want a unique layout per client.
Can I create different invoice templates for different clients?
Yes — you can build one template shared across all clients, or individual templates tailored to each client.
What data can I include in a custom invoice template?
The Invoice, InvoiceJobs, VendorLegalEntity, and Customer data objects — covering invoice numbers/dates/totals, the services billed, your company's legal/bank details, and the customer's company details.
What syntax do I use to pull data into a template?
Fields are referenced with the <<[Field.Name]>> syntax, e.g. <<[Invoice.Number]>> for the invoice number.
Want to learn more?
See how Smartcat can transform your localization workflow.
Still need help?
Our support team responds within one business day.