Skip to main content

Payment Terms

Overview

Payment Terms define when an invoice is due. Each term has a code, a label for dropdown menus, a type that controls how the due date is calculated, and translated template texts that appear on the printed invoice. You can create as many terms as you need and assign them as defaults on customer profiles. For "Days after invoice" terms, you can also configure up to three early-payment discount tiers (Skonto) that incentivize faster payment.

Accessing Payment Terms

  1. Go to Administration > Payment Terms
  2. View, add, edit, or delete terms

How Payment Terms Work

When you select a payment term on an invoice, docs101 calculates the due date automatically:

TypeDescriptionDefault ValueDue Date Calculation
Days after invoice (days_relative)Due date relative to the invoice dateNumber of days (e.g. 30)Invoice date + days
Fixed date (date_fixed)Due date is a specific calendar dateDate in YYYY-MM-DD formatExact date specified
Immediate (immediate)Payment is due upon receiptNot requiredSame as invoice date

The calculated due date can always be overridden manually on individual invoices.

tip

Use the Immediate type for cash payments or situations where payment is expected right away. The due date is automatically set to the invoice date and the due days to 0 — no manual input needed.

Translations

Each payment term has a template text that appears on the invoice PDF. docs101 supports multilingual template texts so that the correct language is used automatically depending on the customer's language setting.

  • English (required): The default template text. Always used as a fallback.
  • German (optional): If provided, this text is used on invoices for German-speaking customers.

The German translation is hidden behind a collapsible accordion in the modal to keep the form compact.

How Translation Resolution Works

When generating an invoice PDF, docs101 resolves the template text as follows:

  1. Check the customer's language setting (English or German)
  2. If a translation exists for that language, use it
  3. Otherwise, fall back to the English translation

This means you only need to provide the German translation if you have German-speaking customers and want localized payment instructions on their invoices.

Placeholders

Template texts support placeholders that are replaced with actual values when the invoice is generated:

PlaceholderReplaced WithAvailable For
{days}Number of days until dueDays after invoice
{date}Formatted due dateFixed date, Days after invoice

Examples:

  • English: Payment due within {days} days of invoice date
  • German: Zahlbar innerhalb von {days} Tagen nach Rechnungsdatum
  • Immediate: Due upon receipt (no placeholders needed)

Language Badges

The payment terms table shows language badges next to each term:

  • EN (always present) — English translation exists
  • DE (optional) — German translation exists

This gives you a quick overview of which terms have been fully translated.

Early-Payment Discounts (Skonto)

Early-payment discounts (known as Skonto in German business practice) let you offer your customers a reduced invoice amount if they pay before the regular due date. You define discount tiers on a payment term, and docs101 automatically calculates the concrete discount amounts and deadlines for each invoice that uses that term.

Looking for Position-Level Discounts?

This section covers early-payment discounts (Skonto) — invoice-level incentives for faster payment. For percentage or fixed-amount discounts on individual line items, see Discounts & Exemptions.

Availability

Early-payment discounts are only available for the Days after invoice (days_relative) payment term type. The Discounts tab is disabled for Fixed date and Immediate terms, since those types do not have a relative payment window where a discount deadline would make sense.

Configuring Discount Tiers

To add discount tiers to a payment term:

  1. Open the payment term modal (create new or edit existing)
  2. Ensure the type is set to Days after invoice
  3. Navigate to the Discounts tab
  4. Click + Add Tier
  5. Enter the Days (payment deadline for this discount) and Percentage (discount rate)
  6. Repeat to add up to 3 tiers
  7. Click Save

Tier Fields

FieldDescriptionConstraints
DaysNumber of days after invoice date by which payment must be receivedPositive integer, unique across tiers, must be less than the payment term's due days
PercentageDiscount percentage applied to the invoice totalGreater than 0, maximum 100

Validation Rules

  • Maximum 3 tiers per payment term
  • Days must be unique — no two tiers can have the same deadline
  • Days must be less than due days — a discount deadline of 14 days is not valid on a Net 10 term
  • Shorter deadline = higher percentage — a 7-day tier must offer a higher percentage than a 14-day tier
warning

The ordering rule (shorter deadline = higher percentage) is enforced automatically. A customer who pays earlier should always receive a better discount. docs101 rejects configurations that violate this rule.

Discount Translations

Each payment term with discount tiers has its own discount line text — a template that controls how each discount tier appears on the invoice PDF. This is separate from the main payment term translation text.

  • English (required): Must be provided when discount tiers exist
  • German (optional): Used for German-speaking customers, falls back to English

The discount line text supports these placeholders:

PlaceholderReplaced WithExample
{percentage}Discount percentage3
{discount_amount}Calculated discount amount150.00
{reduced_amount}Reduced invoice amount after discount4,850.00
{currency}Invoice currency codeEUR
{due_date}Formatted discount deadline15 Jan 2026

Default templates:

  • English: {reduced_amount} {currency} if paid by {due_date} (includes {percentage}% discount)
  • German: {reduced_amount} {currency} bei Zahlung bis zum {due_date} ({percentage}% Skonto)

How Discounts Appear on Invoices

When you select a payment term with discount tiers on an invoice, docs101 automatically materializes concrete InvoiceDiscountTerm records. This happens every time the payment term or invoice total changes — no manual action is needed.

Calculation

Each discount tier is calculated based on the invoice gross amount (total including VAT):

ValueCalculation
discount_amountgross_amount x percentage / 100 (rounded to 2 decimal places)
due_dateinvoice_date + tier days
reduced_amountgross_amount - discount_amount

Status Badges

On the invoice detail page, each materialized discount term shows a status badge:

BadgeColorCondition
activeGreenDiscount deadline is more than 3 days away
expiringYellowDiscount deadline is 3 days away or less
expiredRedDiscount deadline has passed

PDF Display

On the generated invoice PDF, discount lines appear below the main payment terms text. Each tier is rendered using the discount line text template with placeholders replaced by the calculated values.

Example

Payment term: Net 30 with 3 discount tiers

TierDaysPercentage
173%
2142%
3211%

Invoice: 5,000.00 EUR gross, invoice date 1 March 2026

TierDiscount AmountReduced AmountDue Date
7 days / 3%150.00 EUR4,850.00 EUR8 March 2026
14 days / 2%100.00 EUR4,900.00 EUR15 March 2026
21 days / 1%50.00 EUR4,950.00 EUR22 March 2026

Full amount (5,000.00 EUR) is due by 31 March 2026 if no discount is taken.

Finalization Validation

When an invoice with discount terms is finalized, docs101 validates:

  • Each discount due date is before the invoice due date
  • Each discount amount does not exceed the invoice total
  • The ordering rule holds: shorter deadline = higher percentage

If any check fails, the finalization is blocked and an error is returned.

Creating a Payment Term

Step 1: Click "Add Payment Term"

Go to Payment Terms > Add Payment Term

Step 2: Enter Term Details

Code

  • A short, unique identifier for internal reference
  • Example: "NET30", "IMMEDIATE", "DUE-2025-06"

Label

  • A human-readable description shown in dropdown menus
  • Example: "Net 30 days", "Due upon receipt"

Type

  • Days after invoice: Calculates due date relative to the invoice date
  • Fixed date: Uses a specific calendar date as the due date
  • Immediate: Payment is due upon receipt — due date equals invoice date

English Translation

  • The payment instruction text printed on the invoice (required)
  • Supports placeholders: {days} for the number of days, {date} for the due date
  • Example: "Payment due within {days} days of invoice date"

German Translation (optional)

  • Expand the "German Translation" accordion to enter a German version
  • Same placeholder support as the English text
  • Example: "Zahlbar innerhalb von {days} Tagen nach Rechnungsdatum"

Default Value

  • For type "Days after invoice": the number of days (e.g., 30)
  • For type "Fixed date": a date in YYYY-MM-DD format (e.g., 2025-06-15)
  • For type "Immediate": no value required (automatically set to 0)
info

When you select the Immediate type, the Default Value field is hidden automatically since no value is needed.

Step 2b: Configure Discount Tiers (Optional)

If the type is Days after invoice, you can optionally add early-payment discount tiers:

  1. Switch to the Discounts tab
  2. Click + Add Tier and enter the days and percentage for each tier
  3. Provide a discount line text (English required, German optional) with placeholders

See Early-Payment Discounts (Skonto) for full configuration details and validation rules.

Step 3: Save

Click Save to create the term. It is immediately available for use on invoices and customer profiles.

Editing a Payment Term

  1. Find the term in the table
  2. Click the Edit button (pencil icon)
  3. Update the fields you need to change
  4. Click Save
info

Changing a payment term does not retroactively update existing invoices. Only new invoices use the updated configuration.

Deleting a Payment Term

  1. Find the term in the table
  2. Click the Delete button (trash icon)
  3. Confirm deletion in the dialog

What happens on delete:

  • Not referenced: If no invoice or customer uses this term, it is permanently removed from the database.
  • Referenced: If at least one invoice or customer still references this term, it is deactivated instead of deleted. Deactivated terms no longer appear in dropdown menus but remain linked to existing records to preserve data integrity.

In both cases the term disappears from your list. The distinction is handled automatically — you do not need to decide.

warning

Deleting a payment term that is set as a customer's default will deactivate it. Consider assigning a different default to affected customers first.

Using Payment Terms

On Invoices

When creating or editing an invoice, select a payment term from the dropdown. The due date is calculated automatically based on the term type and the invoice date. You can override the due date manually if needed.

For Immediate terms, both the due date and due days fields are set automatically and made read-only:

  • Due days: 0
  • Due date: same as invoice date

If the selected payment term has discount tiers configured, docs101 automatically calculates and displays the materialized discount terms on the invoice detail page. Each discount tier shows the discount amount, reduced total, due date, and a status badge indicating whether the discount is active, expiring, or expired.

As Customer Defaults

You can assign a default payment term to each customer in their profile under Defaults. When you create a new invoice for that customer, the payment term is pre-filled automatically.

This ensures consistency and saves time for recurring customers. See Manage Customers for details.

Impact on Payment Tracking

The due date derived from payment terms drives:

  • Overdue detection: Invoices past their due date appear in the overdue dashboard widget
  • KPI calculations: Average payment duration and on-time payment rates
  • Account statements: Customer statements show outstanding and overdue amounts

See Track Payments for more on payment tracking.

Built-in vs. Custom Terms

docs101 provides a set of commonly used payment terms out of the box (e.g., Immediate, Net 7, Net 14, Net 30, Net 60). You can use these as-is or create your own custom terms to match your specific business agreements.

Best Practices

  1. Use Clear Labels — Choose labels that are immediately understandable (e.g., "Net 30 days" instead of "T30")
  2. Standardize Codes — Use a consistent naming convention for codes across your terms
  3. Set Customer Defaults — Assign payment terms to each customer so invoices are pre-configured
  4. Match Agreements — Ensure payment terms reflect actual contractual agreements with customers
  5. Translate for Your Audience — If you invoice German-speaking customers, provide German translations so their invoices read naturally
  6. Review Periodically — Remove or update terms that are no longer used to keep your list clean
  7. Incentivize Early Payment — Use discount tiers on your Net 30 or Net 60 terms to encourage customers to pay sooner
  8. Write Meaningful Discount Texts — Customize the discount line text so customers clearly understand the discount amount and deadline

Next: Set up your Product Catalog.