Payment Terms

GET /accounting/payment-terms

Group: Accounting › Payment Terms · Operation ID: paymentTerms

List payment terms with structured filters. GET data-set exposing filter[field][op]= (eq/ne/gt/gte/lt/lte/in/notIn/between/like), sort=-numberOfDays,code, sparse fields=, and page[size]/page[cursor] cursor pagination. Returns the catalogue of agreed payment schedules and their early-payment discounts. Every request must carry the Api-Version header: a missing or empty header is rejected with 400, an identifier naming no version of the company with 400, and a route that exists but not in the requested version with 404.

Open in the interactive reference

Parameters

Name In Type Required Description
Api-Version header "v1" yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.

Query surface

Response

200 Success

Under data, an array of paymentTermsRow:

Field Type Required Description
id string no Stable, platform-assigned id (a UUID) of the payment term — the public identifier other accounting contracts reference a term by.
code string no Stable machine code of the payment term, unique within the tenant and conventionally 'net' plus the day count, e.g. 'net30'. This is the key other records associate on, and the value integrations hold. Filter target: filter[code][eq]=net30, or filter[code][in]=net30,net60.
label string no Human-readable label of the payment term, e.g. 'Net 30'. Orderable for alphabetical listing but not filterable — filter on code instead, which identifies the same term.
description string no Longer description of the payment term. Returned only: in neither filterableFields nor orderableFields, because it is free-form prose (R7.2).
numberOfDays number no Number of days after the invoice date on which payment becomes due. Filter target: filter[numberOfDays][lte]=30, or filter[numberOfDays][between]=30,60. A day count, not an amount.
discountPercentage string (decimal) or null no Early-payment discount granted when the invoice is settled within discountValidityDays, as a FRACTION of the invoice amount — 0.02 means 2%, not 2. Bounded to the range 0..1 inclusive, 1 being a 100% discount, and held to two decimal places — so the practical granularity is whole percentage points: 0.02 (2%) round-trips, while 0.025 (2.5%) is rounded to 0.03. A ratio, so it carries no currency (R9.4c). Zero, not absent, on a term that grants no discount: the column defaults to 0, so treat 0 rather than omission as 'no discount'. Above zero it is always paired with a non-zero discountValidityDays. Filter target: filter[discountPercentage][gt]=0 to find terms that discount at all.
discountValidityDays number or null no Number of days after the invoice date within which payment earns discountPercentage. A day count, not an amount. Zero, not absent, on a term that grants no discount — the column defaults to 0 — and above zero exactly when discountPercentage is above zero, since the two are only meaningful together.
lastModifiedDate string (date-time) no Instant the payment term last changed, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ). Filter and sort on this to sync incrementally: filter[lastModifiedDate][gte]=2026-08-01T00:00:00.000Z with sort=lastModifiedDate.

Statuses