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
id— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likecode— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likenumberOfDays— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likediscountPercentage— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likediscountValidityDays— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likelastModifiedDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like- Orderable: id, code, label, numberOfDays, discountPercentage, discountValidityDays, lastModifiedDate
- Selectable: id, code, label, description, numberOfDays, discountPercentage, discountValidityDays, lastModifiedDate
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
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error