Journal 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)
referencestringNo
tax_amountnumberNo
currencystringNo
lineitemsAccountingJournalLineitem[]Nonew field name
lineitems[].idstringNo
lineitems[].tax_amountnumberNo
lineitems[].total_amountnumberNowill be a positive value for a debit and negative for a credit
lineitems[].debit_amountnumberNowill replace total_amount (absolute value)
lineitems[].credit_amountnumberNo
lineitems[].descriptionstringNo
lineitems[].account_idstringNo(reference to AccountingAccount)
lineitems[].contact_idstringNo(reference to AccountingContact)
lineitems[].payment_idstringNolink to PaymentPayment (reference to PaymentPayment)
lineitems[].invoice_idstringNo(reference to AccountingInvoice)
lineitems[].category_idsstring[]No(reference to AccountingCategory)
lineitems[].group_idstringNopoints to a HRIS Group (reference to HrisGroup)
lineitems[].project_idstringNo(reference to TaskProject)
lineitems[].organization_idstringNopoints to a AccountingOrganization
lineitems[].taxrate_idstringNoref -> AccountingTaxrate applied to the line
taxrate_idstringNo
descriptionstringNo
posted_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
sourcestringNo
organization_idstringNo
category_idsstring[]No(reference to AccountingCategory)
project_idstringNo(reference to TaskProject)
attachmentsAccountingAttachment[]No
attachments[].idstringNo
attachments[].download_urlstringNo
attachments[].namestringNo
attachments[].mime_typestringNo
total_amountnumberNoTotal of the debit lines; equals the total of the credit lines
exchange_ratenumberNoExchange rate to the base/home currency at the posting date
statusenumNoPosting state of the journal entry Values: DRAFT, POSTED, VOID, OTHER
is_inclusive_of_taxbooleanNoTrue when the line amounts already include tax

TypeScript

TypeScript
export type AccountingJournal = {
	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)
	reference?: string;
	tax_amount?: number;
	currency?: string;
	lineitems?: []; // new field name
	taxrate_id?: string;
	description?: string;
	posted_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	source?: string;
	organization_id?: string;
	category_ids?: string[]; // (reference to AccountingCategory)
	project_id?: string; // (reference to TaskProject)
	attachments?: [];
	total_amount?: number; // Total of the debit lines; equals the total of the credit lines
	exchange_rate?: number; // Exchange rate to the base/home currency at the posting date
	status?: 'DRAFT' | 'POSTED' | 'VOID' | 'OTHER'; // Posting state of the journal entry
	is_inclusive_of_tax?: boolean; // True when the line amounts already include tax
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodAccountingJournal = 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)"),
	reference: z.string().optional(),
	tax_amount: z.number().optional(),
	currency: z.string().optional(),
	lineitems: z.array().optional().describe("new field name"),
	taxrate_id: z.string().optional(),
	description: z.string().optional(),
	posted_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	source: z.string().optional(),
	organization_id: z.string().optional(),
	category_ids: z.array().optional().describe("(reference to AccountingCategory)"),
	project_id: z.string().optional().describe("(reference to TaskProject)"),
	attachments: z.array().optional(),
	total_amount: z.number().optional().describe("Total of the debit lines; equals the total of the credit lines"),
	exchange_rate: z.number().optional().describe("Exchange rate to the base/home currency at the posting date"),
	status: z.enum("DRAFT", "POSTED", "VOID", "OTHER").optional().describe("Posting state of the journal entry"),
	is_inclusive_of_tax: z.boolean().optional().describe("True when the line amounts already include tax"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class AccountingJournalStatus(str, Enum):
	DRAFT = 'DRAFT'
	POSTED = 'POSTED'
	VOID = 'VOID'
	OTHER = 'OTHER'

@dataclasses.dataclass
class AccountingJournal:
	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]
	reference: Optional[str]
	tax_amount: Optional[int]
	currency: Optional[str]
	"""new field name"""
	lineitems: Optional[PropertyAccountingJournalLineitems]
	taxrate_id: Optional[str]
	description: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	posted_at: Optional[str]
	source: Optional[str]
	organization_id: Optional[str]
	"""(reference to AccountingCategory)"""
	category_ids: Optional[List[List[str]]]
	"""(reference to TaskProject)"""
	project_id: Optional[str]
	attachments: Optional[PropertyAccountingJournalAttachments]
	"""Total of the debit lines; equals the total of the credit lines"""
	total_amount: Optional[int]
	"""Exchange rate to the base/home currency at the posting date"""
	exchange_rate: Optional[int]
	"""Posting state of the journal entry"""
	status: Optional[AccountingJournalStatus]
	"""True when the line amounts already include tax"""
	is_inclusive_of_tax: Optional[bool]
Are we missing anything? Let us know
Was this page helpful?