Skip to content

Firm resources

Resources of PennylaneFirm / AsyncPennylaneFirm. Every method takes company_id as its first argument, except FirmCompanies. Async twins exist for every class.

Bases: SyncAPIResource

Read the companies managed by the accounting firm.

list

list(
    *,
    page: int | None = None,
    per_page: int | None = None,
    filter: FiltersInput | None = None,
) -> SyncNumberedPage[FirmCompany]

List the firm's companies.

Scope: companies:readonly. Reference: https://firm-pennylane.readme.io/reference/companies

Parameters:

Name Type Description Default
page int | None

Page index, starting at 1.

None
per_page int | None

Results per page (1-1000, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None

get

get(company_id: int) -> FirmCompany

Retrieve a company by its Pennylane identifier.

Scope: companies:readonly. Reference: https://firm-pennylane.readme.io/reference/company

Bases: SyncAPIResource

Manage a company's fiscal years.

list

list(
    company_id: int,
    *,
    page: int | None = None,
    per_page: int | None = None,
) -> SyncNumberedPage[FirmFiscalYear]

List a company's fiscal years.

Scope: fiscal_years:all or fiscal_years:readonly. Reference: https://firm-pennylane.readme.io/reference/company-fiscal-years

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
page int | None

Page index, starting at 1.

None
per_page int | None

Results per page.

None

create

create(
    company_id: int, *, start: str, finish: str
) -> FirmFiscalYear

Create a fiscal year for a company.

Scope: fiscal_years:all. Reference: https://firm-pennylane.readme.io/reference/postfiscalyears

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
start str

Date at which the fiscal year starts (ISO 8601). Fiscal years must be consecutive.

required
finish str

Date at which the fiscal year ends (ISO 8601).

required

Bases: SyncAPIResource

Read a company's trial balance.

list

list(
    company_id: int,
    *,
    period_start: str,
    period_end: str,
    is_auxiliary: bool | None = None,
    page: int | None = None,
    per_page: int | None = None,
) -> SyncNumberedPage[FirmTrialBalanceRow]

List the trial balance rows of a company for a period.

Scope: trial_balance:readonly. Reference: https://firm-pennylane.readme.io/reference/company-trial-balance

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
period_start str

Period start date (YYYY-MM-DD).

required
period_end str

Period end date (YYYY-MM-DD).

required
is_auxiliary bool | None

Whether to include auxiliary ledger accounts.

None
page int | None

Page index, starting at 1.

None
per_page int | None

Results per page.

None

Bases: SyncAPIResource

Manage a company's accounting journals.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
) -> SyncCursorPage[FirmJournal]

List a company's journals.

Scope: journals:all or journals:readonly. Reference: https://firm-pennylane.readme.io/reference/getjournals

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None

get

get(company_id: int, journal_id: int) -> FirmJournal

Retrieve a journal by its Pennylane identifier.

Scope: journals:all or journals:readonly. Reference: https://firm-pennylane.readme.io/reference/getjournal

create

create(
    company_id: int, *, code: str, label: str
) -> FirmJournal

Create a journal for a company.

Scope: journals:all. Reference: https://firm-pennylane.readme.io/reference/postjournals

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
code str

2 to 5 letters that represent the journal.

required
label str

Label that describes the journal.

required

Bases: SyncAPIResource

Manage a company's ledger accounts.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
) -> SyncCursorPage[FirmLedgerAccount]

List a company's ledger accounts.

Scope: ledger_accounts:all or ledger_accounts:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgeraccounts

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None

get

get(
    company_id: int, ledger_account_id: int
) -> FirmLedgerAccount

Retrieve a ledger account by its Pennylane identifier.

Scope: ledger_accounts:all or ledger_accounts:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgeraccount

create

create(
    company_id: int,
    *,
    number: str,
    label: str,
    vat_rate: str | None = None,
    country_alpha2: str | None = None,
) -> FirmLedgerAccount

Create a ledger account for a company.

Scope: ledger_accounts:all. Reference: https://firm-pennylane.readme.io/reference/postledgeraccounts

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
number str

Ledger account number. If it starts with 401 (supplier) or 411 (customer), a corresponding third party is created.

required
label str

Ledger account label.

required
vat_rate str | None

VAT rate code.

None
country_alpha2 str | None

Country code (alpha2).

None

update

update(
    company_id: int,
    ledger_account_id: int,
    *,
    label: str | None = None,
    letterable: bool | None = None,
) -> FirmLedgerAccount

Update a ledger account. Only the provided fields are modified.

Scope: ledger_accounts:all. Reference: https://firm-pennylane.readme.io/reference/updateledgeraccount

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
ledger_account_id int

The ledger account's Pennylane identifier.

required
label str | None

Label that describes the ledger account.

None
letterable bool | None

Whether the ledger entries of this ledger account are letterable.

None

Bases: SyncAPIResource

Manage a company's accounting ledger entries.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmLedgerEntry]

List a company's ledger entries.

Scope: ledger_entries:all or ledger_entries:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgerentries

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending.

None

get

get(
    company_id: int, ledger_entry_id: int
) -> FirmLedgerEntry

Retrieve a ledger entry by its Pennylane identifier.

Scope: ledger_entries:all or ledger_entries:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgerentry

create

create(
    company_id: int,
    *,
    date: str,
    label: str,
    journal_id: int,
    ledger_entry_lines: Sequence[dict[str, Any]],
    file_attachment_id: int | None = None,
    currency: str | None = None,
) -> FirmLedgerEntry

Create a ledger entry for a company.

Scope: ledger_entries:all. Reference: https://firm-pennylane.readme.io/reference/postledgerentries

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
date str

Date of the ledger entry (ISO 8601).

required
label str

Label that describes the ledger entry.

required
journal_id int

The journal ID where you want to create the ledger entry.

required
ledger_entry_lines Sequence[dict[str, Any]]

Entry lines, each a dict with debit, credit (Money strings) and ledger_account_id, plus an optional label. The API requires BOTH debit and credit on every line (set the unused side to "0.00"). Must balance.

required
file_attachment_id int | None

File attachment ID.

None
currency str | None

ISO currency code applied to all lines (default EUR).

None

update

update(
    company_id: int,
    ledger_entry_id: int,
    *,
    date: str | None = None,
    label: str | None = None,
    journal_id: int | None = None,
    ledger_entry_lines: dict[str, Any] | None = None,
    file_attachment_id: int | None = None,
    currency: str | None = None,
) -> FirmLedgerEntry

Update a ledger entry. Only the provided fields are modified.

Scope: ledger_entries:all. Reference: https://firm-pennylane.readme.io/reference/putledgerentries

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
ledger_entry_id int

The ledger entry's Pennylane identifier.

required
date str | None

Date of the ledger entry (ISO 8601).

None
label str | None

Label that describes the ledger entry.

None
journal_id int | None

The journal ID where you want to move the ledger entry.

None
ledger_entry_lines dict[str, Any] | None

A dict with optional create, update and delete lists to add, modify or remove entry lines. The resulting entry must balance.

None
file_attachment_id int | None

File attachment ID.

None
currency str | None

ISO currency code applied to all lines.

None

Bases: SyncAPIResource

Read a company's ledger entry lines.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmLedgerEntryLine]

List a company's ledger entry lines.

Scope: ledger_entries:all or ledger_entries:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgerentrylines

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

get

get(
    company_id: int, ledger_entry_line_id: int
) -> FirmLedgerEntryLine

Retrieve a ledger entry line by its Pennylane identifier.

Scope: ledger_entries:all or ledger_entries:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgerentryline

list_lettered_lines

list_lettered_lines(
    company_id: int,
    ledger_entry_line_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmLedgerEntryLine]

List the ledger entry lines lettered with a given entry line.

Scope: ledger_entries:all or ledger_entries:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgerentrylineslettered

Parameters:

Name Type Description Default
company_id int

The company's Pennylane identifier.

required
ledger_entry_line_id int

The ledger entry line's Pennylane identifier.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

Bases: SyncAPIResource

Namespace for company data exports (FEC, Analytical General Ledger).

Bases: SyncAPIResource

Manage FEC (Fichier des Ecritures Comptables) exports.

create

create(
    company_id: int,
    *,
    period_start: date | str,
    period_end: date | str,
) -> FecExport

Create a FEC export.

Scope: exports:fec. Reference: https://firm-pennylane.readme.io/reference/postfecexport

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
period_start date | str

Start date of the period to export.

required
period_end date | str

End date of the period to export.

required

get

get(company_id: int, export_id: int) -> FecExport

Retrieve a FEC export.

Scope: exports:fec. Reference: https://firm-pennylane.readme.io/reference/getfecexport

Bases: SyncAPIResource

Manage Analytical General Ledger exports.

create

create(
    company_id: int,
    *,
    period_start: date | str,
    period_end: date | str,
    mode: str | None = None,
) -> AnalyticalGeneralLedgerExport

Create an Analytical General Ledger export.

Scope: exports:agl. Reference: https://firm-pennylane.readme.io/reference/postanalyticalgeneralledgerexport

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
period_start date | str

Start date of the period to export.

required
period_end date | str

End date of the period to export.

required
mode str | None

Export layout, "in_line" (default) or "in_column".

None

get

get(
    company_id: int, export_id: int
) -> AnalyticalGeneralLedgerExport

Retrieve an Analytical General Ledger export.

Scope: exports:agl. Reference: https://firm-pennylane.readme.io/reference/getanalyticalgeneralledgerexport

Bases: SyncAPIResource

Namespace for the Firm DMS (GED): files and folders.

Bases: SyncAPIResource

Manage files stored in the Firm DMS (GED).

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
) -> SyncCursorPage[DmsFile]

List a company's DMS files.

Scope: dms_files:readonly. Reference: https://firm-pennylane.readme.io/reference/company-dms-files

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None

create

create(
    company_id: int,
    file: FileInput,
    *,
    name: str | None = None,
    parent_folder_id: int | None = None,
) -> DmsFile

Upload a file to the DMS.

Scope: dms_files:all. Reference: https://firm-pennylane.readme.io/reference/postdmsfiles

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
file FileInput

A path, raw bytes, a binary file-like object, or a (filename, content) tuple.

required
name str | None

Name of the file. Defaults to the uploaded file's own name.

None
parent_folder_id int | None

Parent folder to upload into. Defaults to root level.

None

Bases: SyncAPIResource

Manage folders stored in the Firm DMS (GED).

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
) -> SyncCursorPage[DmsFolder]

List a company's DMS folders.

Scope: dms_files:readonly. Reference: https://firm-pennylane.readme.io/reference/listdmsfolders

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None

create

create(
    company_id: int,
    *,
    name: str,
    parent_folder_id: int | None = None,
) -> DmsFolder

Create a DMS folder.

Scope: dms_files:all. Reference: https://firm-pennylane.readme.io/reference/postdmsfolders

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
name str

Name of the folder.

required
parent_folder_id int | None

Parent folder. Defaults to root level.

None

Bases: SyncAPIResource

Upload files to attach to other resources.

create

create(
    company_id: int,
    file: FileInput,
    *,
    filename: str | None = None,
) -> FileAttachment

Upload a file to attach to any resource that provides a file_attachment_id.

This does not upload the file into the DMS (GED).

Scope: file_attachments:all. Reference: https://firm-pennylane.readme.io/reference/postfileattachments

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
file FileInput

A path, raw bytes, a binary file-like object, or a (filename, content) tuple.

required
filename str | None

Name of the file. Defaults to the uploaded file's own name.

None

Bases: SyncAPIResource

Browse a client company's customer invoices.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmCustomerInvoice]

List customer invoices of a client company.

Beta: undocumented endpoint, subject to change.

Scope: customer_invoices:readonly. Reference: https://firm-pennylane.readme.io/reference/getcustomerinvoices

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

get

get(
    company_id: int, customer_invoice_id: int
) -> FirmCustomerInvoice

Retrieve a customer invoice of a client company.

Beta: undocumented endpoint, subject to change.

Scope: customer_invoices:readonly. Reference: https://firm-pennylane.readme.io/reference/getcustomerinvoice

Bases: SyncAPIResource

Browse a client company's supplier invoices.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmSupplierInvoice]

List supplier invoices of a client company.

Beta: undocumented endpoint, subject to change.

Scope: supplier_invoices:readonly. Reference: https://firm-pennylane.readme.io/reference/getsupplierinvoices

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

get

get(
    company_id: int, supplier_invoice_id: int
) -> FirmSupplierInvoice

Retrieve a supplier invoice of a client company.

Beta: undocumented endpoint, subject to change.

Scope: supplier_invoices:readonly. Reference: https://firm-pennylane.readme.io/reference/getsupplierinvoice

Bases: SyncAPIResource

Browse a client company's customers.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmCustomer]

List customers of a client company.

Scope: customers:readonly. Reference: https://firm-pennylane.readme.io/reference/getcustomers

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

Bases: SyncAPIResource

Browse a client company's suppliers.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmSupplier]

List suppliers of a client company.

Scope: suppliers:readonly. Reference: https://firm-pennylane.readme.io/reference/getsuppliers

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

Bases: SyncAPIResource

Manage a client company's bank accounts.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmBankAccount]

List bank accounts of a client company.

Scope: bank_accounts:readonly or bank_accounts:all. Reference: https://firm-pennylane.readme.io/reference/getbankaccounts

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

create

create(
    company_id: int,
    *,
    name: str,
    bank_establishment_id: int | None = None,
    iban: str | None = None,
    bic: str | None = None,
    currency: str | None = None,
    account_type: str | None = None,
) -> FirmBankAccount

Create a bank account for a client company.

Scope: bank_accounts:all. Reference: https://firm-pennylane.readme.io/reference/postbankaccount

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
name str

The name of the bank account.

required
bank_establishment_id int | None

Bank establishment id (Other if omitted).

None
iban str | None

International Bank Account Number.

None
bic str | None

Bank Identifier Code.

None
currency str | None

ISO currency code (default EUR).

None
account_type str | None

One of current (deprecated), card, savings, shares, loan, life_insurance, other, checking.

None

Bases: SyncAPIResource

Manage a client company's bank transactions.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmTransaction]

List transactions of a client company.

Scope: transactions:readonly or transactions:all. Reference: https://firm-pennylane.readme.io/reference/gettransactions

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

create

create(
    company_id: int,
    *,
    bank_account_id: int,
    label: str,
    date: str,
    amount: MoneyInput,
    fee: MoneyInput | None = None,
) -> FirmTransaction

Create a transaction for a client company.

Scope: transactions:all. Reference: https://firm-pennylane.readme.io/reference/createtransaction

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
bank_account_id int

The bank account where the transaction is registered.

required
label str

Transaction label.

required
date str

Transaction date (ISO 8601).

required
amount MoneyInput

Transaction amount (Decimal or string).

required
fee MoneyInput | None

Transaction fee (Decimal or string).

None

update

update(
    company_id: int,
    transaction_id: int,
    *,
    customer_id: int | None = None,
    supplier_id: int | None = None,
) -> FirmTransaction

Match a transaction of a client company with a customer or a supplier.

Scope: transactions:all. Reference: https://firm-pennylane.readme.io/reference/updatetransaction

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
transaction_id int

Identifier of the transaction to update.

required
customer_id int | None

Identifier of the customer to match (mutually exclusive with supplier_id).

None
supplier_id int | None

Identifier of the supplier to match (mutually exclusive with customer_id).

None

Bases: SyncAPIResource

Browse a client company's categories used to classify transactions and invoice lines.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    filter: FiltersInput | None = None,
    sort: str | None = None,
) -> SyncCursorPage[FirmCategory]

List categories of a client company.

Scope: categories:readonly. Reference: https://firm-pennylane.readme.io/reference/getcategories

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None
filter FiltersInput | None

Conditions built with :mod:pennylane_sdk.filters.

None
sort str | None

Sort field, prefixed with - for descending (default -id).

None

get

get(company_id: int, category_id: int) -> FirmCategory

Retrieve a category of a client company by its Pennylane identifier.

Scope: categories:readonly. Reference: https://firm-pennylane.readme.io/reference/getcategory

Bases: SyncAPIResource

Browse a client company's category groups.

list

list(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
) -> SyncCursorPage[FirmCategoryGroup]

List category groups of a client company.

Scope: categories:readonly. Reference: https://firm-pennylane.readme.io/reference/getcategorygroups

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None

get

get(
    company_id: int, category_group_id: int
) -> FirmCategoryGroup

Retrieve a category group of a client company by its Pennylane identifier.

Scope: categories:readonly. Reference: https://firm-pennylane.readme.io/reference/getcategorygroup

list_categories

list_categories(
    company_id: int,
    category_group_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
) -> SyncCursorPage[FirmCategory]

List the categories belonging to a category group of a client company.

Scope: categories:readonly. Reference: https://firm-pennylane.readme.io/reference/getcategorygroupcategories

Parameters:

Name Type Description Default
company_id int

Identifier of the client company.

required
category_group_id int

Identifier of the parent category group.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page (1-100, API default 20).

None

Bases: SyncAPIResource

Track change events (insert/update/delete) for company resources.

dms_files

dms_files(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    start_date: date | None = None,
) -> SyncCursorPage[ChangelogEvent]

List DMS file change events.

Scope: dms_files:readonly. Reference: https://firm-pennylane.readme.io/reference/getdmsfileschanges

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
start_date date | None

Only return events processed on or after this date.

None

ledger_entry_lines

ledger_entry_lines(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    start_date: date | None = None,
) -> SyncCursorPage[ChangelogEvent]

List ledger entry line change events.

Scope: ledger_entries:readonly. Reference: https://firm-pennylane.readme.io/reference/getledgerentrylinechanges

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
start_date date | None

Only return events processed on or after this date.

None

supplier_invoices

supplier_invoices(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    start_date: date | None = None,
) -> SyncCursorPage[ChangelogEvent]

List supplier invoice change events.

Beta: undocumented endpoint, subject to change.

Scope: supplier_invoices:readonly. Reference: https://firm-pennylane.readme.io/reference/getsupplierinvoiceschanges

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
start_date date | None

Only return events processed on or after this date.

None

customer_invoices

customer_invoices(
    company_id: int,
    *,
    cursor: str | None = None,
    limit: int | None = None,
    start_date: date | None = None,
) -> SyncCursorPage[ChangelogEvent]

List customer invoice change events.

Beta: undocumented endpoint, subject to change.

Scope: customer_invoices:readonly. Reference: https://firm-pennylane.readme.io/reference/getcustomerinvoiceschanges

Parameters:

Name Type Description Default
company_id int

Identifier of the company.

required
cursor str | None

Pagination cursor from a previous page.

None
limit int | None

Results per page.

None
start_date date | None

Only return events processed on or after this date.

None