304Payment Terms
Credit terms: due days, end-of-month counting and early-payment discount.
Try it
Due date calculator
Uses the holiday calendar (293) to move a due date off weekends and holidays
Due
Wed 9 Dec 2026
Pay 9,800.00 by 19 Nov (save 200.00)
Every term for this invoice date
| Term | Count from | Due date | Early-payment discount |
|---|---|---|---|
| CIA Cash in advance | 2026-11-09 | Mon 2026-11-09 | β |
| COD Cash on delivery | 2026-11-09 | Mon 2026-11-09 | β |
| NET7 Net 7 days | 2026-11-09 | Mon 2026-11-16 | β |
| NET15 Net 15 days | 2026-11-09 | Tue 2026-11-24 | β |
| 2/10N30 2% 10, net 30 | 2026-11-09 | Wed 2026-12-09 | 2% until 2026-11-19 |
| EOM30 30 days after end of month | 2026-11-30 | Wed 2026-12-30 | β |
| NET30 Net 30 days | 2026-11-09 | Wed 2026-12-09 | β |
| NET60 Net 60 days | 2026-11-09 | Fri 2027-01-08 | β |
| # | Code | Name | Due days | Count from month end | Discount % | Discount days | Status | |
|---|---|---|---|---|---|---|---|---|
| 1 | CIA | Cash in advance | 0 | 0 | 0 | Active | βοΈ | |
| 2 | COD | Cash on delivery | 0 | 0 | 0 | Active | βοΈ | |
| 3 | NET7 | Net 7 days | 7 | 0 | 0 | Active | βοΈ | |
| 4 | NET15 | Net 15 days | 15 | 0 | 0 | Active | βοΈ | |
| 8 | 2/10N30 | 2% 10, net 30 | 30 | 2 | 10 | Active | βοΈ | |
| 7 | EOM30 | 30 days after end of month | 30 | β | 0 | 0 | Active | βοΈ |
| 5 | NET30 | Net 30 days | 30 | 0 | 0 | Active | βοΈ | |
| 6 | NET60 | Net 60 days | 60 | 0 | 0 | Active | βοΈ |
Showing 1β8 of 8
π Learn: how this master is built table payment_term
Key points
- PaymentTermService.dueDate() uses HolidayService to skip weekends and holidays.
- java.time: invoiceDate.with(TemporalAdjusters.lastDayOfMonth()).plusDays(30).
Code
- Entity
domain/PaymentTerm.java- Repository
repo/PaymentTermRepository.java- Definition
MasterRegistry: "payment-terms"- Page / form
web/MasterController.java- Try-it panel
templates/tools/due-date.html- REST API
GET /api/payment-terms/NET30/due-date?invoiceDate=2026-10-26&amount=10000
SQL to try in SSMS (database MasterDataLabDB)
SELECT code, name, DATEADD(DAY, due_days, CAST(GETDATE() AS DATE)) AS due_if_invoiced_today FROM payment_term;