Reports
Reports in FreshBooks provide detailed data on various aspects of your business. There are seven types of reports you are able to access.
Accounts Aging
Balance Sheet
Cash Flow
Chart of Accounts
Expense Details
General Ledger
Invoice Details
Manual Journal Entry
Payments Collected
Profit and Loss
Tax Summary
Trial Balance
Access Requirements
Includes
There are no includes for reports
Account Aging Report
The Account Aging Report shows details regarding overdue invoices from clients
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date Equals currency_code
string
reports using the given currency as primary currency
Field Descriptions
Field Type Description totals
object
subfields: intervals (0-30
, 31-60
, 61-90
, 91+
). Each interval represents the amount due from overdue invoices. interval(x)’s object
subfields: amount
, code
amount
string
the amount of money paid or owed code
string
the currency that the amount is in download_token
string
the download token allows you to download the report into a csv file accounts
array
holds client objects userid
int
unique id for the client lname
string
the last name of the client fname
string
the first name of the client organization
string
the organization the client belongs to email
string
the email belonging to the client company_name
string
the company that the report refers to currency_code
string
three-letter currency code for overdue payments end_date
date
the ending date for the profit/loss report query
Get Account Aging Report
Request
curl -X GET
-H "Authorization: Bearer <a token>"
-H "Api-Version: alpha"
-H "Content-Type: application/json"
"https://api.freshbooks.com/accounting/account/<account_id>/reports/accounting/accounts_aging?start_date=2017-01-01&end_date=2017-12-31"
Response:
{
"response" : {
"result" : {
"accounts_aging" : {
"end_date" : "2017-12-31" ,
"totals" : {
"0-30" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"61-90" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"total" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"91+" : {
"amount" : "0.00" ,
"code" : "CAD"
}, "31-60" : {
"amount" : "0.00" ,
"code" : "CAD"
}
},
"download_token" : “Lots of Characters”,
"accounts" : [],
"company_name" : "FB" ,
"currency_code" : "CAD"
}
}
}
}
Search Example with Account Aging Report
Get the accounts until a certain end date
Request: GET
https://api.freshbooks.com/accounting/account/<accountid>/reports/accounting/accounts_aging?end_date=2017-05-17
Balance Sheet Report
The Balance Sheet Report
Available Filters
Filter Type Name Field Description Between date1
date
Date to use for Report Between date2
date
2nd Date for comparison Equals currency_code
string
Currency for report Equals cash_based
boolean
Cash-based vs Accrual Equals locale
string
Language to show on report
Get Balance Sheet Report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/balance_sheet?date1=2023-04-20' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"balance_sheet" : {
"company_name" : "" ,
"download_token" : "" ,
"dates" : [
"2023-08-01"
],
"currency_code" : "USD" ,
"cash_based" : false ,
"assets_total" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "1115.00" ,
"code" : "USD"
}
}
],
"liabilities_and_equity_total" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "1115.00" ,
"code" : "USD"
}
}
],
"data" : [
{
"account_type" : "asset" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "1115.00" ,
"code" : "USD"
}
}
],
"sub_types" : [
{
"account_sub_type" : "Cash & Bank" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "1025.00" ,
"code" : "USD"
}
}
],
"accounts" : [
{
"account_name" : "Cash" ,
"account_number" : "1000" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "1025.00" ,
"code" : "USD"
}
}
],
"sub_accounts" : [
{
"sub_account_name" : "Cash (general)" ,
"sub_account_number" : "1000" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "-25.00" ,
"code" : "USD"
}
}
]
},
{
"sub_account_name" : "Petty Cash" ,
"sub_account_number" : "1000-1" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "1050.00" ,
"code" : "USD"
}
}
]
}
]
}
]
},
{
"account_sub_type" : "Current Asset" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "-10.00" ,
"code" : "USD"
}
}
],
"accounts" : [
{
"account_name" : "Customer Deposits" ,
"account_number" : "1201" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "-110.00" ,
"code" : "USD"
}
}
],
"sub_accounts" : [
{
"sub_account_name" : "Customer Deposits (general)" ,
"sub_account_number" : "1201" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "-110.00" ,
"code" : "USD"
}
}
]
}
]
},
{
"account_name" : "NFTs Baby!" ,
"account_number" : "1205" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "100.00" ,
"code" : "USD"
}
}
],
"sub_accounts" : [
{
"sub_account_name" : "NFTs Baby! (general)" ,
"sub_account_number" : "1205" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "100.00" ,
"code" : "USD"
}
}
]
}
]
}
]
},
{
"account_sub_type" : "Property, Plant, and Equipment" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "100.00" ,
"code" : "USD"
}
}
],
"accounts" : [
{
"account_name" : "Property, Plant, and Equipment" ,
"account_number" : "1500" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "100.00" ,
"code" : "USD"
}
}
],
"sub_accounts" : [
{
"sub_account_name" : "Office Equipment" ,
"sub_account_number" : "1500-3" ,
"balances" : [
{
"date" : "2023-08-01" ,
"balance" : {
"amount" : "100.00" ,
"code" : "USD"
}
}
]
}
]
}
]
}
]
},
< .. . more accounts and sub-accounts data .. . >
]
}
}
}
}
Example Balance Sheet with filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/balance_sheet?date1=2023-02-24¤cy_code=CAD&locale=en' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Cash Flow Report
Available Filters
Filter Type Name Field Description Between start_date
date
Starting date for report Between end_date
date
Ending date for report Equals currency_code
string
Currency for report
Get Cash Flow Report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/cash_flow' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"cash_flow" : {
"company_name" : "" ,
"download_token" : "" ,
"start_date" : "2023-01-01" ,
"end_date" : "2023-12-31" ,
"currency_code" : "USD" ,
"activities" : [
{
"category" : "operating" ,
"details" : [
{
"name" : "Sales" ,
"accounts" : [
{
"name" : "Current Asset" ,
"sub_accounts" : [
{
"name" : "Customer Deposits" ,
"categoryid" : null ,
"sub_accountid" : null ,
"total" : {
"amount" : "10.00" ,
"code" : "USD"
}
}
],
"total" : {
"amount" : "10.00" ,
"code" : "USD"
}
},
{
"name" : "Customer Credit" ,
"sub_accounts" : [
{
"name" : "Customer Credit" ,
"categoryid" : null ,
"sub_accountid" : null ,
"total" : {
"amount" : "175.00" ,
"code" : "USD"
}
}
],
"total" : {
"amount" : "175.00" ,
"code" : "USD"
}
},
{
"name" : "Revenue" ,
"sub_accounts" : [
{
"name" : "Sales" ,
"categoryid" : null ,
"sub_accountid" : null ,
"total" : {
"amount" : "766.67" ,
"code" : "USD"
}
}
],
"total" : {
"amount" : "766.67" ,
"code" : "USD"
}
}
],
"total" : {
"amount" : "951.67" ,
"code" : "USD"
}
},
< .. . more account and sub-accounts data .. . >
],
"total" : {
"amount" : "1025.00" ,
"code" : "USD"
}
},
< .. . more category activities data .. . >
],
"summary" : {
"ending_balance" : {
"amount" : "1025.00" ,
"code" : "USD"
},
"gross_cash_inflow" : {
"amount" : "1355.00" ,
"code" : "USD"
},
"gross_cash_outflow" : {
"amount" : "-430.00" ,
"code" : "USD"
},
"net_cash_change" : {
"amount" : "925.00" ,
"code" : "USD"
},
"starting_balance" : {
"amount" : "100.00" ,
"code" : "USD"
}
}
}
}
}
}
Example Cash Flow with report filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/cash_flow?start_date=2023-02-01&end_date=2023-02-28¤cy_code=CAD' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Chart of Accounts Report
Additional Access Requirements
Available Filters
Filter Type Name Field Description Between start_date
date
Starting date for report Between end_date
date
Ending date for report Equals currency_code
string
Currency for report Equals account_type
string
Filter by Account Type Equals state
string
Filter by Account state; i.e. active
Equals sort
string
Sort results based on field; Takes a string in the form of <field_name>_<asc/desc>
Get Chart of Accounts
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/chart_of_accounts' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"journal_entry_accounts" : [
{
"account_name" : "Cash" ,
"account_number" : "1000" ,
"account_type" : "asset" ,
"balance" : "925.000" ,
"currency_code" : null ,
"sub_accounts" : [
{
"account_type" : "asset" ,
"balance" : "-25.000" ,
"currency_code" : null ,
"account_name" : "Cash (general)" ,
"account_number" : "1000" ,
"account_uuid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"parent_account_uuid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"account_sub_type" : "Cash & Bank" ,
"system_account_name" : "Cash" ,
"auto_created" : true ,
"state" : "active"
},
{
"account_type" : "asset" ,
"balance" : "950.000" ,
"currency_code" : null ,
"account_name" : "Petty Cash" ,
"account_number" : "1000-1" ,
"account_uuid" : "95026d52-14ac-4008-9f81-c0e4ac77c3ce" ,
"parent_account_uuid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"account_sub_type" : "Cash & Bank" ,
"system_account_name" : "Petty Cash" ,
"auto_created" : false ,
"state" : "active"
}
],
"account_uuid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"account_sub_type" : "Cash & Bank" ,
"system_account_name" : "Cash" ,
"auto_created" : true ,
"state" : "active"
},
{
"account_name" : "Accounts Receivable" ,
"account_number" : "1200" ,
"account_type" : "asset" ,
"balance" : "0.000" ,
"currency_code" : null ,
"sub_accounts" : [],
"account_uuid" : "734750cd-4b8b-42cd-ab54-38f53aac38ad" ,
"account_sub_type" : "Current Asset" ,
"system_account_name" : "Accounts Receivable" ,
"auto_created" : false ,
"state" : "active"
},
< .. . more accounts data .. . >
]
}
}
}
Example Chart of Accounts request with report filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/chart_of_accounts?account_type=liability¤cy_code=CAD&end_date=2023-12-31&sort=account_number_asc&start_date=2023-01-01&state=active' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Expense Details Report
The Expenses Report shows all the information involving your Expenses
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals group_by
string
Data returned is organized by the given argument. (parent_category, clients, vendor, author) Equals exclude_personal
boolean
true
returns data without personal expenses includedEquals include_project
boolean
Include expenses assigned to Projects Equals client_id
integer
Filter by specific Client Equals locale
string
Language to show on report
Field Descriptions
Field Type Description exclude_personal
boolean
true doesn’t return personal expenses end_date
date
Will only return invoices that were created before the given date clients
object
subfields: clientid
(s) clientid
(s)object
subfields: language, userid, email, lname, fname, organization, id language
string
2 letter string representing the primary language of the client userid
int
duplicate value of the client’s id email
string
the email of the client lname
string
last name of the client fname
string
first name of the client organization
string
name of the organization the client is a part of id
int
unique id for the client download_token
string
the download token allows you to download the report into a csv file vendors
object
subfields: vendorid
vendorid
(s)string
the name of the vendor group_by
string
The category that you would like to group your data by currency_code
string
three-letter currency code for invoice authors
object
subfields: userid(s) userid
(s)object
subfields: lname
, fname
, email
, organization
, userid
data
array
holds majority of the numerical data that is returned groupid
string
unique id for the group total
object
subfields: amount, code amount
string
the amount of money that is owed or been paid code
string
the currency that the amount is in children
array
holds data about a sub expense expenses
array
stores Expense objects vendorid
string
the unique id for the vendor vendor
string
The name of the vendor notes
string
custom notes about the expense clientid
int
unique id for the client taxPercent1
string
the percentage you are being taxed on authorid
string
id for the author taxName1
string
the name of the first tax taxName2
string
the name of the second tax date
date
the date the expense took place taxAmount2
object
subfields: amount, code taxAmount1
object
subfields: amount, code expenseid
int
uniqueid for the expense taxPercent2
string
the percentage you are being taxed on categoryid
string
unique id for the category of the expense start_date
date
the starting date for the expense report query categories
object
subfields: categoryid
(s) categoryid
(s)object
subfields: category
, subcategory_name
, categoryid
category
string
name of the category subcategory_name
string
name of the subcategory categoryid
int
unique id for the category company_name
string
name of the company that the expenses are charged too
Get Expense Details
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/expense_details' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"expense_details" : {
"company_name" : "<company name>" ,
"download_token" : "<download token>" ,
"start_date" : "2023-01-01" ,
"end_date" : "2023-12-31" ,
"currency_code" : "USD" ,
"data" : [
{
"expenses" : [
{
"account_name" : "" ,
"amount" : {
"amount" : "115.00" ,
"code" : "USD"
},
"authorid" : "1" ,
"categoryid" : "2640410" ,
"clientid" : "81553" ,
"date" : "2023-03-08" ,
"expenseid" : 644429,
"imported_from_csv" : false ,
"is_cogs" : false ,
"modern_projectid" : null ,
"notes" : "expense w/ tax and client" ,
"taxAmount1" : {
"amount" : "15.00" ,
"code" : "USD"
},
"taxAmount2" : {
"amount" : "0.00" ,
"code" : "USD"
},
"taxName1" : "HST" ,
"taxName2" : null ,
"taxPercent1" : "15" ,
"taxPercent2" : null ,
"vendor" : "withClient" ,
"vendorid" : "b3aa10f59a43d062e6ec5f8353f8f075"
}
],
"children" : [],
"groupid" : "2640410" ,
"total" : {
"amount" : "115.00" ,
"code" : "USD"
}
},
{
"expenses" : [
{
"account_name" : "" ,
"amount" : {
"amount" : "115.00" ,
"code" : "USD"
},
"authorid" : "1" ,
"categoryid" : "2640418" ,
"clientid" : "0" ,
"date" : "2023-03-08" ,
"expenseid" : 644424,
"imported_from_csv" : false ,
"is_cogs" : false ,
"modern_projectid" : null ,
"notes" : "expense w/ tax, no client" ,
"taxAmount1" : {
"amount" : "15.00" ,
"code" : "USD"
},
"taxAmount2" : {
"amount" : "0.00" ,
"code" : "USD"
},
"taxName1" : "HST" ,
"taxName2" : null ,
"taxPercent1" : "15" ,
"taxPercent2" : null ,
"vendor" : "NoClient" ,
"vendorid" : "d352980c03e945aa5e9eb990c67a3b98"
}
],
"children" : [],
"groupid" : "2640418" ,
"total" : {
"amount" : "115.00" ,
"code" : "USD"
}
}
],
"authors" : {
"1" : {
"email" : "<company email>" ,
"fname" : "<company fname>" ,
"lname" : "<company lname>" ,
"organization" : "" ,
"userid" : 1
}
},
"categories" : {
"2640410" : {
"category" : "Education and Training" ,
"categoryid" : 2640410,
"is_cogs" : false ,
"subcategory_name" : "Education and Training (general)"
},
"2640418" : {
"category" : "Meals & Entertainment" ,
"categoryid" : 2640418,
"is_cogs" : false ,
"subcategory_name" : "Meals & Entertainment (general)"
}
},
"clients" : {
"0" : {
"email" : "" ,
"fname" : "" ,
"lname" : "" ,
"organization" : "" ,
"id" : null ,
"language" : null ,
"level" : null ,
"role" : null ,
"userid" : null
},
"81553" : {
"email" : "<client email>" ,
"fname" : "<client fname>" ,
"lname" : "<client lname>" ,
"organization" : "<client organization>" ,
"id" : 81553,
"language" : null ,
"level" : null ,
"role" : null ,
"userid" : 81553
}
},
"modern_projects" : {},
"expense_refunds" : [],
"vendors" : {
"b3aa10f59a43d062e6ec5f8353f8f075" : "withClient" ,
"d352980c03e945aa5e9eb990c67a3b98" : "NoClient"
},
"summary" : {
"total_amount" : {
"amount" : "230.00" ,
"code" : "USD"
},
"total_expense_refund_amount" : {
"amount" : "0.00" ,
"code" : "USD"
}
},
"summary_only" : false ,
"exclude_personal" : false ,
"group_by" : "category"
}
}
}
}
Example Searches with Expense Details
Get Expense Details Between a Specific Range
Request: GET
https://api.freshbooks.com/accounting/account/<accountid>/reports/accounting/expense_details?start_date=2016 -04-19&end_date=2017-07-25
Get Expense Details including expenses assigned to projects
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/expense_details?start_date=2023-01-01&end_date=2023-12-31&group_by=parent_category&exclude_personal=false¤cy_code=CAD&include_project=true' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Get Expense Details Excluding Personal Expenses
Request: GET
https://api.freshbooks.com/accounting/account/<accountid>/reports/accounting/expense_details?start_date=2016 -04-19&exclude_personal=true&end_date=2017-09-17
General Ledger Report
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals accountid
uuid
Filter by specific Account Equals locale
string
Language to show on report
Get General Ledger Report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/general_ledger' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"general_ledger" : {
"company_name" : "<company name>" ,
"download_token" : "<download token>" ,
"start_date" : "2023-01-01" ,
"end_date" : "2023-12-31" ,
"currency_code" : "USD" ,
"locale" : "en" ,
"summary_only" : false ,
"summary" : {
"total_credit" : {
"amount" : "1945.00" ,
"code" : "USD"
}
},
"data" : [
{
"accountid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"account_name" : "Cash" ,
"account_number" : "1000" ,
"debit" : {
"amount" : "1355.00" ,
"code" : "USD"
},
"credit" : {
"amount" : "430.00" ,
"code" : "USD"
},
"net_movement_debit" : {
"amount" : "925.00" ,
"code" : "USD"
},
"net_movement_credit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"sub_accounts" : [
{
"sub_accountid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"sub_account_name" : "Cash (general)" ,
"sub_account_number" : "1000" ,
"debit" : {
"amount" : "75.00" ,
"code" : "USD"
},
"credit" : {
"amount" : "100.00" ,
"code" : "USD"
},
"net_movement_debit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"net_movement_credit" : {
"amount" : "25.00" ,
"code" : "USD"
},
"transactions" : [
{
"entity_type" : "adjustment" ,
"reference" : "example adjustment" ,
"description" : "example adjustment description" ,
"date" : "2023-06-01" ,
"client_name" : null ,
"debit" : {
"amount" : "25.00" ,
"code" : "USD"
},
"credit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"expenseid" : null ,
"invoiceid" : null ,
"paymentid" : null ,
"incomeid" : null ,
"creditid" : null ,
"clientid" : null ,
"billid" : null ,
"bill_paymentid" : null
},
{
"entity_type" : "adjustment" ,
"reference" : "example adjustment" ,
"description" : "example adjustment description" ,
"date" : "2023-06-01" ,
"client_name" : null ,
"debit" : {
"amount" : "25.00" ,
"code" : "USD"
},
"credit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"expenseid" : null ,
"invoiceid" : null ,
"paymentid" : null ,
"incomeid" : null ,
"creditid" : null ,
"clientid" : null ,
"billid" : null ,
"bill_paymentid" : null
},
< .. . more transactions data .. . >
],
"account_type" : "asset" ,
"account_sub_type" : "Cash & Bank"
},
< .. . more sub_accounts data .. .>
],
"account_type" : "asset" ,
"account_sub_type" : "Cash & Bank"
},
< .. . more accounts data .. . >
]
}
}
}
}
Example General Ledger with report filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/general_ledger?start_date=2023-02-01&end_date=2023-02-28¤cy_code=CAD&locale=en' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Invoice Details Report
The Invoice Details Report shows all the information involving your invoices
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals clientids
int
returns data from specific client(s) Equal statusids
string
returns invoices that has the same status as the given status. (draft, sent, paid, etc) Equal date_type
string
returns invoices with the specified date_type (issue or paid)
Field Descriptions
Field Type Description statusids
array
The status id(s) for the invoices. Used for filtering. clientids
array
The client id(s) that are on the invoices. Used for filtering end_date
date
Will only return invoices that were created before the given date date_type
string
If equals “issue”, Date will be the date the invoice was issued. If equals “paid”, date will be the date the invoice was paid. invoiceid
int
The unique id of the invoice create_date
date
The date the invoice was created due_offset_Days
int
Number of days from creation that the invoice is due outstanding
object
Subfields: amount, code amount
string
the amount of money that is owed or been paid code
string
the currency that the amount is in po_number
int
post office box number for address on invoice lines
array
Lines of the invoice tax
object
sub fields: amount, code paid
object
sub fields: amount, code date_paid
date
The date the invoice was paid v3_status
string
description of Invoice Status discount_total
object
subfields: amount, code invoice_number
string
user-specified and visible invoice id total
object
subfields: amount, code subtotal
object
user-specified and visible invoice id currency_code
string
three-letter currency code for invoice userid
int
The unique id of the client summary
object
subfields: total
, paid
, outstanding
, download_token
, company_name
, start_date
, currency_code
download_token
string
the download token allows you to download the report into a csv file company_name
string
the name of the company that the report is refering to start_date
date
the starting date for the expense report query currency_code
string
three-letter currency code for invoice lname
string
the last name of the user fname
string
first name of the user organization
string
name of the organization the user is a part of email
string
The email of the user
Get Invoice Details Report
Request
curl -X GET
-H "Authorization: Bearer <a token>"
-H "Api-Version: alpha"
-H "Content-Type: application/json"
"https://api.freshbooks.com/accounting/account/<accountid>/reports/accounting/invoice_details?start_date=2017-01-01&end_date=2017-12-31"
Response:
{
"response" : {
"result" : {
"invoice_details" : {
"statusids" : [],
"end_date" : "2017-12-31" ,
"clientids" : [],
"date_type" : "issue" ,
"clients" : [
{
"invoices" : [
{
"invoiceid" : 638384,
"create_date" : "2016-04-04" ,
"due_offset_days" : 0,
"outstanding" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"po_number" : null ,
"lines" : [],
"tax_summaries" : [],
"tax" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"paid" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"date_paid" : null ,
"v3_status" : draft,
"discount_total" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"invoice_number" : "0000001" ,
"total" : {
"amount" : 0.00,
"code" : CAD
},
"subtotal" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"currency_code" : "CAD"
}
],
"userid" : 144577,
"summary" : {
"total" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"paid" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"outstanding" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"lname" : "Doe" ,
"fname" : "Jane" ,
"organization" : "Company and Co" ,
"email" : "JaneDoe@Example.com" ,
}
],
"summary" : {
"total" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"paid" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"outstanding" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"download_token" : "bunch of letters and numbers" ,
"company_name" : "My Company" ,
"start_date" : "2017-01-01" ,
"currency_code" : "CAD"
}
}
}
}
Example Invoice Details with report filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/general_ledger?start_date=2023-02-01&end_date=2023-02-28¤cy_code=CAD&locale=en' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Manual Journal Entry Report
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals locale
string
Language to show on report
Get Manual Journal Entry Report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/manual_journal_entry_report' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"manual_journal_entry_report" : {
"company_name" : "<company name>" ,
"download_token" : "<download token>" ,
"start_date" : "2023-01-01" ,
"end_date" : "2023-12-31" ,
"currency_code" : "USD" ,
"locale" : "en" ,
"summary_only" : false ,
"summary" : {
"total_credit" : {
"amount" : "1205.00" ,
"code" : "USD"
},
"total_debit" : {
"amount" : "1205.00" ,
"code" : "USD"
}
},
"data" : [
{
"date" : "2023-06-07" ,
"journal_entry_data" : [
{
"entryid" : 9130583,
"journal_entry_detail_data" : {
"date" : "2023-06-07" ,
"description" : "Basic description of the journal entry made." ,
"entry_type" : "adjustment" ,
"name" : "JournalEntry" ,
"total_credit" : {
"amount" : "100.00" ,
"code" : "USD"
},
"total_debit" : {
"amount" : "100.00" ,
"code" : "USD"
},
"transactions" : [
{
"sub_account" : {
"sub_account_name" : "Petty Cash" ,
"sub_account_number" : "1000-1" ,
"sub_accountid" : "95026d52-14ac-4008-9f81-c0e4ac77c3ce" ,
"account_type" : "asset" ,
"account_sub_type" : "Cash & Bank" ,
"parent_account" : {
"account_name" : "Cash" ,
"account_number" : "1000" ,
"accountid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"account_type" : "asset" ,
"account_sub_type" : "Cash & Bank"
}
},
"credit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"debit" : {
"amount" : "100.00" ,
"code" : "USD"
}
},
{
"sub_account" : {
"sub_account_name" : "Sales" ,
"sub_account_number" : "4000-3" ,
"sub_accountid" : "d9172e15-0c23-42ea-95df-7099bd5799b8" ,
"account_type" : "income" ,
"account_sub_type" : "Income" ,
"parent_account" : {
"account_name" : "Revenue" ,
"account_number" : "4000" ,
"accountid" : "2695bc0b-e112-4a67-b052-5e64346482f0" ,
"account_type" : "income" ,
"account_sub_type" : "Income"
}
},
"credit" : {
"amount" : "100.00" ,
"code" : "USD"
},
"debit" : {
"amount" : "0.00" ,
"code" : "USD"
}
}
]
}
}
]
},
< .. . more journal entry data .. . >
]
}
}
}
}
Example Manual Journal Entry Report with filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/manual_journal_entry_report?start_date=2023-02-01&end_date=2023-02-28&locale=en¤cy_code=CAD' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Payments Collected Report
The payments Collected Report shows details regarding collected payments made to your business
Field Type Description currency_code
array
filters payments by specific currency code(s) start_date
date
the starting date for the payments collected report query end_date
date
the ending date for the payments collected report query clientsids
array
filters payments by specific client(s) using their client id payment_methods
array
filters payments by specific method(s) of payments download_token
string
the download token allows you to download the report into a csv file totals
array
holds total objects with subfields: amount, code amount
string
the amount of money paid or owed code
string
the currency that the amount is in payments
array
holds payment objects with the subfields: invoiceid
, description
, clientid
, amount
, client
, date
, invoice_number
, method
invoiceid
int
the unique id of the invoice description
string
the description of the payment clientid
int
the unique id of the client client
string
the name of the business the client belongs to date
date
the date of the payment invoice_number
string
a custom id for the invoice method
string
method of payment
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals locale
string
Language to show on report
Get Payments Collected Report
Request
curl -X GET
-H "Authorization: Bearer <a token>"
-H "Api-Version: alpha"
-H "Content-Type: application/json"
"https://api.freshbooks.com/accounting/account/<account_id>/reports/accounting/payments_collected?start_date=2017-01-01&end_date=2017-12-31"
Response:
{
"response" : {
"result" : {
"payments_collected" : {
"currency_codes" : [],
"end_date" : "2017-12-31" ,
"clientids" : [],
"payment_methods" : [],
"totals" : [
{
"amount" : "114.77" ,
"code" : "CAD"
}
],
"download_token" : “A lot of characters“,
"payments" : [
{
"invoiceid" : 668361,
"description" : "" ,
"clientid" : 144599,
"amount" : {
"amount" : "114.77" ,
"code" : "CAD"
},
"client" : "Magic" ,
"date" : "2017-07-26" ,
"invoice_number" : "0000012" ,
"method" : "Bank Transfer"
}
],
"start_date" : "2017-07-26"
}
}
}
}
Search Example with Payments Report
Searching Payment information by Client
Request: GET
https://api.freshbooks.com/accounting/account/<account_id>/reports/accounting/payments_collected?start_date=2017-01-01&end_date=2017-12-31&clientids%5B%5D=144599
Profit and Loss Report
The profit/Loss Report shows all the information involving both your Profits and Losses
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals cash_based
boolean
Cash-based vs Accrual Equals resolution
string
Specifies how often data is calculated and stored. For example, “3m” would specify to return data grouped in three month intervals. Equals fiscal_year_view
boolean
true
to use reporting data based on Fiscal year rather than calendar yearEquals locale
string
Language to show on report
Field Descriptions
Field Type Description net_profit
object
subfields: entry_type, total, data, description, children entry_type
string
method of payment total
object
subfields: amount, code amount
string
the amount of money paid or owed code
string
the currency that the amount is in data
array
Data[] represents a row of values in the profit/loss report. Each row in the profit/loss report will output a data array. To populate data you must specify a resolution. For example resolution=3m with populate each data array with 4 amount objects description
string
The description for the net profit portion of the report children
array
holds info on child profits/expenses total_income
object
subfields: entry_type, total, data, description, children end_date
date
the ending date for the profit/loss report query income
array
holds income objects labels
array
labels is an array that holds all the months of profit/loss recording specified by resolution. expenses
array
holds expense objects download_token
string
the download token allows you to download the report into a csv file company_name
string
The name of the company the profit/loss report belongs to cash_based
boolean
true toggles profit/loss to be calculated on collected payments rather than billed total_expense
object
subfields: entry_type, total, data, description, children resolution
string
specifies the frequency that the profit/loss report is calculated. Example quarterly vs annually start_date
date
the starting date for the expense report query currency_code
string
three-letter currency code for invoice
Get Profit and Loss Report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/profit_and_loss?start_date=2023-01-01&end_date=2023-12-31' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"profit_and_loss" : {
"download_token" : "<download token>" ,
"start_date" : "2023-01-01" ,
"end_date" : "2023-12-31" ,
"currency_code" : "USD" ,
"locale" : "en" ,
"company_name" : "<company name>" ,
"cash_based" : false ,
"group_by_account" : false ,
"dates" : [
{
"start_date" : "2023-01-01" ,
"end_date" : "2023-01-31"
},
{
"start_date" : "2023-02-01" ,
"end_date" : "2023-02-28"
},
< .. . more date range buckets .. . >
],
"expenses" : [
{
"children" : [
{
"children" : [
{
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "0.00" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Expenses" ,
"entry_type" : "debit" ,
"account_uuid" : null ,
"total" : {
"amount" : "115.00" ,
"code" : "USD"
}
}
],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "115.00" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Education and Training (general)" ,
"entry_type" : "debit" ,
"account_uuid" : "4ffa4d5f-a6e7-478e-a835-53f785daa1b9" ,
"total" : {
"amount" : "115.00" ,
"code" : "USD"
}
}
],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "115.00" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Education and Training" ,
"entry_type" : "debit" ,
"account_uuid" : "4ffa4d5f-a6e7-478e-a835-53f785daa1b9" ,
"total" : {
"amount" : "115.00" ,
"code" : "USD"
}
},
< .. . more expenses data .. . >
],
"gross_margin" : {
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "%"
},
{
"amount" : "100.00" ,
"code" : "%"
},
< .. . more data buckets .. . >
],
"description" : "Gross Margin" ,
"entry_type" : "none" ,
"account_uuid" : null ,
"total" : {
"amount" : "100.00" ,
"code" : "%"
}
},
"income" : [
{
"children" : [
{
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "250.00" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Adjustment" ,
"entry_type" : "credit" ,
"account_uuid" : null ,
"total" : {
"amount" : "450.00" ,
"code" : "USD"
}
},
< .. . more children buckets .. . >
{
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "316.67" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Other Income" ,
"entry_type" : "credit" ,
"account_uuid" : null ,
"total" : {
"amount" : "316.67" ,
"code" : "USD"
}
}
],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "416.67" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Sales" ,
"entry_type" : "credit" ,
"account_uuid" : null ,
"total" : {
"amount" : "616.67" ,
"code" : "USD"
}
},
< .. . more children buckets .. . >
],
"net_profit" : {
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "416.67" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Net Profit (USD)" ,
"entry_type" : "credit" ,
"account_uuid" : null ,
"total" : {
"amount" : "401.67" ,
"code" : "USD"
}
},
"total_expenses" : {
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "0.00" ,
"code" : "USD"
},
< .. . more data buckets .. . >
],
"description" : "Total Expenses" ,
"entry_type" : "debit" ,
"account_uuid" : null ,
"total" : {
"amount" : "215.00" ,
"code" : "USD"
}
},
"total_income" : {
"children" : [],
"data" : [
{
"amount" : "0.00" ,
"code" : "USD"
},
{
"amount" : "416.67" ,
"code" : "USD"
},
< .. . more data buckets .. .>
],
"description" : "Gross Profit" ,
"entry_type" : "credit" ,
"account_uuid" : null ,
"total" : {
"amount" : "616.67" ,
"code" : "USD"
}
},
"resolution" : "m" ,
"labels" : [
"2023-01-01" ,
"2023-02-01" ,
"2023-03-01" ,
"2023-04-01" ,
"2023-05-01" ,
"2023-06-01" ,
"2023-07-01" ,
"2023-08-01" ,
"2023-09-01" ,
"2023-10-01" ,
"2023-11-01" ,
"2023-12-01"
]
}
}
}
}
Example Search with Profit/loss report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/profit_and_loss?use_ledger_entries=true&fiscal_year_view=false&cash_based_includes_all_accounts_beta_flag=false&start_date=2023-01-01&end_date=2023-12-31&resolution=m&cash_based=false&group_by_category_id=true&locale=en¤cy_code=CAD' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Tax Summary Report
The Tax Summary Report that outlines the taxes involved with your sales
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals cash_based
boolean
True ignores billed payments and uses just collected payments
Field Type Description total_invoiced
object
subfields: amount, code amount
string
the amount of money paid or owed code
string
the currency that the amount is in start_date
date
the starting date for the tax summary report query end_date
date
the ending date for the tax summary report query taxes
array
holds tax objects with subfields: taxable_amount_paid, taxable_amount_collected, net_taxable_amount, tax_paid, tax_collected, net_tax, tax_name taxable_amount_paid
object
subfields: amount, code taxable_amount_collected
object
subfields: amount, code net_taxable_amount
object
subfields: amount, code tax_paid
object
subfields: amount, code tax_collected
object
subfields: amount, code net_tax
object
subfields: amount, code tax_name
object
subfields: amount, code download_token
string
the download token allows you to download the report into a csv file cash_based
boolean
true toggles tax to be calculated on collected sales rather than billed currency_code
string
three-letter currency code for overdue payments
Get Tax Summary Report
Request
curl -X GET
-H "Authorization: Bearer <a token>"
-H "Api-Version: alpha"
-H "Content-Type: application/json"
"https://api.freshbooks.com/accounting/account/<account_id>/reports/accounting/taxsummary?start_date=2017-01-01&end_date=2017-12-31"
Response:
{
"response" : {
"result" : {
"taxsummary" : {
"total_invoiced" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"end_date" : "2017-12-31" ,
"taxes" : [
{
"taxable_amount_paid" : {
"amount" : "854.76" ,
"code" : "CAD"
},
"tax_collected" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"tax_name" : "Tax One" ,
"net_tax" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"taxable_amount_collected" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"net_taxable_amount" : {
"amount" : "-854.76" ,
"code" : "CAD"
},
"tax_paid" : {
"amount" : "0.00" ,
"code" : "CAD"
}
},
{
"taxable_amount_paid" : {
"amount" : "854.76" ,
"code" : "CAD"
},
"tax_collected" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"tax_name" : "Tax Two" ,
"net_tax" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"taxable_amount_collected" : {
"amount" : "0.00" ,
"code" : "CAD"
},
"net_taxable_amount" : {
"amount" : "-854.76" ,
"code" : "CAD"
},
"tax_paid" : {
"amount" : "0.00" ,
"code" : "CAD"
}
}
],
"download_token" : "A bunch of Characters" ,
"cash_based" : false ,
"start_date" : "2017-01-01" ,
"currency_code" : "CAD"
}
}
}
}
Example Search with Tax Summary report
Tax Summary using Collected instead of billed
Request GET:
https://api.freshbooks.com/accounting/account/<account_id>/reports/accounting/taxsummary?start_date=2017-01-01&end_date=2017-12-31&cash_based=true
Trial Balance Report
Available Filters
Filter Type Name Field Description between start_date
date
created during or after the given date between end_date
date
created during or before the given date Equals currency_code
string
reports using the given currency as primary currency Equals locale
string
Language to show on report
Get Profit and Loss Report
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/trial_balance' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'
Response
{
"response" : {
"result" : {
"trial_balance" : {
"company_name" : "<company name>" ,
"download_token" : "<download token>" ,
"start_date" : "2023-01-01" ,
"end_date" : "2023-12-31" ,
"currency_code" : "USD" ,
"data" : [
{
"sub_accountid" : "2a990740-40d6-4529-a604-be0d68cf9d90" ,
"account_name" : "Cash" ,
"account_number" : "1000" ,
"account_sub_name" : "Cash (general)" ,
"account_sub_number" : "1000" ,
"debit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"credit" : {
"amount" : "25.00" ,
"code" : "USD"
},
"account_type" : "asset" ,
"account_sub_type" : "Cash & Bank"
},
{
"sub_accountid" : "95026d52-14ac-4008-9f81-c0e4ac77c3ce" ,
"account_name" : "Cash" ,
"account_number" : "1000" ,
"account_sub_name" : "Petty Cash" ,
"account_sub_number" : "1000-1" ,
"debit" : {
"amount" : "950.00" ,
"code" : "USD"
},
"credit" : {
"amount" : "0.00" ,
"code" : "USD"
},
"account_type" : "asset" ,
"account_sub_type" : "Cash & Bank"
},
< .. . more accounts data .. . >
]
}
}
}
}
Example Trial Balance with report filters
Request
curl --location --request GET 'https://api.freshbooks.com/accounting/businesses/{business_uuid}/reports/trial_balance?start_date=2023-01-01&end_date=2023-12-31&locale=en¤cy_code=CAD' \
--header 'Authorization: Bearer <SET BEARER TOKEN>'