Models

class freshbooks.models.Identity(data: dict)

Bases: Result

An Identity is a freshbooks.models.Result object with additional properties and helper methods to make accessing the current user’s identity easier.

Example:

>>> current_user = freshBooksClient.current_user()
>>> current_user.email
<some email>

>>> current_user.business_memberships
<list of businesses>
property business_memberships: dict

The authenticated user’s businesses and their role in that business.

property full_name: str

The authenticated user’s name

property identity_id: int

The authenticated user’s identity_id

class freshbooks.models.ListResult(name: str, single_name: str, data: dict, include_pages: bool = True)

Bases: object

Result object from API calls with a list of resources returned.

Data in the API can be accessed via attributes.

Example:

clients = freshBooksClient.clients.list(account_id)
assert clients[0].organization == "FreshBooks"

The json-parsed dictionary can also be directly accessed via the data attribute.

Example:

assert clients.data["clients"][0]["organization"] == "FreshBooks"

The list can also be iterated over to access the individual resources as Result obejcts.

Example:

for client in clients:
    assert client.organization == "FreshBooks"
    assert client.data["organization"] == "FreshBooks"

Pagination results are included in the pages attribute:

>>> clients.pages
PageResult(page=1, pages=1, per_page=30, total=6)
>>> clients.pages.total
6

For including pagination in requests, see freshbooks.builders.paginator.PaginateBuilder.

class freshbooks.models.Result(name: str | None, data: dict)

Bases: object

Result object from API calls with a single resource returned.

Data in the API can be accessed via attributes.

Example:

client = freshBooksClient.clients.get(account_id, user_id)
assert client.organization == "FreshBooks"
assert client.userid == user_id

The json-parsed dictionary can also be directly accessed via the data attribute.

Example:

assert client.data["organization"] == "FreshBooks"
assert client.data["userid"] == user_id
enum freshbooks.models.VisState(value)

Bases: IntEnum

Enum of FreshBooks entity vis_status values

Member Type:

int

Valid values are as follows:

ACTIVE = <VisState.ACTIVE: 0>
DELETED = <VisState.DELETED: 1>
ARCHIVED = <VisState.ARCHIVED: 2>

The Enum and its members also have the following methods:

conjugate()

Returns self, the complex conjugate of any int.

bit_length()

Number of bits necessary to represent self in binary.

bin(37) ‘0b100101’ (37).bit_length() 6

bit_count()

Number of ones in the binary representation of the absolute value of self.

Also known as the population count.

bin(13) ‘0b1101’ (13).bit_count() 3

to_bytes(length=1, byteorder='big', *, signed=False)

Return an array of bytes representing an integer.

length Length of bytes object to use. An OverflowError is raised if the integer is not representable with the given number of bytes. Default is length 1. byteorder The byte order used to represent the integer. If byteorder is ‘big’, the most significant byte is at the beginning of the byte array. If byteorder is ‘little’, the most significant byte is at the end of the byte array. To request the native byte order of the host system, use `sys.byteorder’ as the byte order value. Default is to use ‘big’. signed Determines whether two’s complement is used to represent the integer. If signed is False and a negative integer is given, an OverflowError is raised.

from_bytes(byteorder='big', *, signed=False)

Return the integer represented by the given array of bytes.

bytes Holds the array of bytes to convert. The argument must either support the buffer protocol or be an iterable object producing bytes. Bytes and bytearray are examples of built-in objects that support the buffer protocol. byteorder The byte order used to represent the integer. If byteorder is ‘big’, the most significant byte is at the beginning of the byte array. If byteorder is ‘little’, the most significant byte is at the end of the byte array. To request the native byte order of the host system, use `sys.byteorder’ as the byte order value. Default is to use ‘big’. signed Indicates whether two’s complement is used to represent the integer.

as_integer_ratio()

Return a pair of integers, whose ratio is equal to the original int.

The ratio is in lowest terms and has a positive denominator.

(10).as_integer_ratio() (10, 1) (-10).as_integer_ratio() (-10, 1) (0).as_integer_ratio() (0, 1)

is_integer()

Returns True. Exists for duck type compatibility with float.is_integer.

real

the real part of a complex number

imag

the imaginary part of a complex number

numerator

the numerator of a rational number in lowest terms

denominator

the denominator of a rational number in lowest terms