Paymentterm data model

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNoterm label, e.g. "Net 30"
descriptionstringNo
typeenumNoValues: ON_RECEIPT, NET_7, NET_10, NET_15, NET_20, NET_25, NET_30, NET_45, NET_60, NET_90, OTHER
categoryenumNoSTANDARD (days-based) or DATE_DRIVEN (month-based) Values: STANDARD, DATE_DRIVEN, OTHER
is_activebooleanNo
due_daysnumberNo(standard) days until payment is due
discount_daysnumberNo(standard) days within which an early-pay discount applies
discount_percentnumberNo(standard) early-pay discount rate
day_of_month_duenumberNo(date-driven) day of month payment is due (1–31)
discount_day_of_monthnumberNo(date-driven) pay before this day of month for the discount
due_next_month_daysnumberNo(date-driven) if invoiced within N days of month-end, due next month
organization_idstringNo
metadataAccountingMetadata[]No
metadata[].idstringNo
metadata[].slugstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo

TypeScript

TypeScript
export type AccountingPaymentterm = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string; // term label, e.g. "Net 30"
	description?: string;
	type?: 'ON_RECEIPT' | 'NET_7' | 'NET_10' | 'NET_15' | 'NET_20' | 'NET_25' | 'NET_30' | 'NET_45' | 'NET_60' | 'NET_90' | 'OTHER';
	category?: 'STANDARD' | 'DATE_DRIVEN' | 'OTHER'; // STANDARD (days-based) or DATE_DRIVEN (month-based)
	is_active?: boolean;
	due_days?: number; // (standard) days until payment is due
	discount_days?: number; // (standard) days within which an early-pay discount applies
	discount_percent?: number; // (standard) early-pay discount rate
	day_of_month_due?: number; // (date-driven) day of month payment is due (1–31)
	discount_day_of_month?: number; // (date-driven) pay before this day of month for the discount
	due_next_month_days?: number; // (date-driven) if invoiced within N days of month-end, due next month
	organization_id?: string;
	metadata?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodAccountingPaymentterm = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional().describe("term label, e.g. "Net 30""),
	description: z.string().optional(),
	type: z.enum("ON_RECEIPT", "NET_7", "NET_10", "NET_15", "NET_20", "NET_25", "NET_30", "NET_45", "NET_60", "NET_90", "OTHER").optional(),
	category: z.enum("STANDARD", "DATE_DRIVEN", "OTHER").optional().describe("STANDARD (days-based) or DATE_DRIVEN (month-based)"),
	is_active: z.boolean().optional(),
	due_days: z.number().optional().describe("(standard) days until payment is due"),
	discount_days: z.number().optional().describe("(standard) days within which an early-pay discount applies"),
	discount_percent: z.number().optional().describe("(standard) early-pay discount rate"),
	day_of_month_due: z.number().optional().describe("(date-driven) day of month payment is due (1–31)"),
	discount_day_of_month: z.number().optional().describe("(date-driven) pay before this day of month for the discount"),
	due_next_month_days: z.number().optional().describe("(date-driven) if invoiced within N days of month-end, due next month"),
	organization_id: z.string().optional(),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class AccountingPaymenttermType(str, Enum):
	ON_RECEIPT = 'ON_RECEIPT'
	NET_7 = 'NET_7'
	NET_10 = 'NET_10'
	NET_15 = 'NET_15'
	NET_20 = 'NET_20'
	NET_25 = 'NET_25'
	NET_30 = 'NET_30'
	NET_45 = 'NET_45'
	NET_60 = 'NET_60'
	NET_90 = 'NET_90'
	OTHER = 'OTHER'

@dataclasses.dataclass
class AccountingPaymenttermCategory(str, Enum):
	STANDARD = 'STANDARD'
	DATE_DRIVEN = 'DATE_DRIVEN'
	OTHER = 'OTHER'

@dataclasses.dataclass
class AccountingPaymentterm:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""term label, e.g. "Net 30""""
	name: Optional[str]
	description: Optional[str]
	type: Optional[AccountingPaymenttermType]
	"""STANDARD (days-based) or DATE_DRIVEN (month-based)"""
	category: Optional[AccountingPaymenttermCategory]
	is_active: Optional[bool]
	"""(standard) days until payment is due"""
	due_days: Optional[int]
	"""(standard) days within which an early-pay discount applies"""
	discount_days: Optional[int]
	"""(standard) early-pay discount rate"""
	discount_percent: Optional[int]
	"""(date-driven) day of month payment is due (1–31)"""
	day_of_month_due: Optional[int]
	"""(date-driven) pay before this day of month for the discount"""
	discount_day_of_month: Optional[int]
	"""(date-driven) if invoiced within N days of month-end, due next month"""
	due_next_month_days: Optional[int]
	organization_id: Optional[str]
	metadata: Optional[PropertyAccountingPaymenttermMetadata]
Are we missing anything? Let us know
Was this page helpful?