× Freshbooks App Logo
FreshBooks
Official App
Free - Google Play
Get it

Reports

General Info

Reports in FreshBooks provide detailed data on various aspects of your business. There are seven types of reports you are able to access.

*Requires Authorization*

  1. Invoice Details
  2. Expense Details
  3. Profit/Loss
  4. Aging Accounts
  5. Tax Summary
  6. Payments Collected

Includes

There are no includes for reports

Filters

Filter Type Name Field Description Applicable Reports
between start_date Date created during or after the given date ALL
between end_date Date created during or before the given date ALL Except Aging Accounts
Equals currency_code String reports using the given currency as primary currency ALL
Equals cash_based Boolean True ignores billed payments and uses just collected payments Tax Summary, Profit/Loss Report
Equals clientids int returns data from specific client(s) Invoice Details, Payments Collected
Equals payment_method String returns data from clients who used the specific method of payment Payments Collected
Equal statusids String returns invoices that has the same status as the given status. (draft, sent, paid, etc) Invoice Details
Equal date_type String returns invoices with the specified date_type (issue or paid) Invoice Details
Equals group_by String Data returned is organized by the given argument. (parent_category, clients, vendor, author) Expense Report
Equals exclude_personal boolean true returns data without personal expenses included Expense Report
Equals resolution String specifies how often data is calculated and stored. For example, "3m" would specify to return data grouped in three month intervals. Profit/Loss Report

Invoice Details

The Invoice Details Report shows all the information involving your invoices

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

Expenses

The Expenses Report shows all the information involving your Expenses

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(s)
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

Profit/Loss

The profit/Loss Report shows all the information involving both your Profits and Losses

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

Account Aging Report

The Account Aging Report shows details regarding overdue invoices from clients

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

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

Tax Summary Report

The Tax Summary Report that outlines the taxes involved with your sales

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 Invoice details

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 Searches for Invoice Details

Get Invoice Details for a Specific Client

Request: GET 
 https://api.freshbooks.com/accounting/account/&ltaccountid&gt/reports/accounting/invoice_details?start_date=2017-01-01&end_date=2017-12-31&clientids%5B%5D=144577

Get Invoice Details of Sent Invoices

Request: GET 
 https://api.freshbooks.com/accounting/account/&ltaccountid&gt/reports/accounting/invoice_details?start_date=2017-01-01&end_date=2017-12-31&statusids%5B%5D=sent

Get Expense Details

curl -X GET 
-H "Authorization: Bearer <a token>" 
-H "Api-Version: aplha" 
-H "Content-Type: application/json" 
"https://api.freshbooks.com/accounting/account/<account_id>/reports/accounting/expense_details?start_date=2017-01-01&end_date=2017-12-31"

Response:


{
  "response": {
    "result": {
      "expense_details": {
        "exclude_personal": false,
        "end_date": "2017-12-31",
        "clients": {
          "0": {
           "language": null,
           "userid": null,
           "email": "JaneDoe@Example.com",
           "lname": "Doe",
           "fname": "Jane",
           "organization": "Company and Co",
           "id": null
          },
          "144599": {
           "langauge": null,
           "userid": 144599,
           "email": "fake@email.com",
            "lname": "Wayne",
           "fname": "bruce",
           "organization": "Fake Company",
           "id": 144599
          }
        },
       "download_token": "A bunch of letters and numbers",
       "vendors": {
         "92d61cbb2aa3a9e323151955eb4484b2": "Vendor 1",
         "419107f1667df41b85d4eef9455ae41a": "Vendor 2",
       },
       "group_by": "category",
       "currency_code": "CAD",
       "authors": {
         "1": {
           "lname": "Parker",
           "organization": "Spurs",
           "userid": 1,
           "email": "tonyparker@spurs.com",
            "fname": "Tony",
         }
       },
       "data": [
        {
          "groupid": "5372370",
          "total": {
            "amount": "854.76",
            "code": "CAD"
          },
           "children": [],
          "expenses": [
            {
              "vendorid": "419107f1667df41b85d4eef9455ae41a",
              "vendor": "vendor 1",
              "notes": "",
              "amount": {
                "amount": "854.76",
                "code": "CAD"
              },
              "clientid": "144599",
              "taxPercent1": null,
              "authorid": "1",
              "taxName2": "Tax Two",
              "taxName1": "Tax One",
              "date": "2017-07-21",
              "taxAmount2": {
                "amount": "0.00",
                "code": "CAD"
              },
              "expenseid": 999712,
              "taxPercent2": null,
              "taxAmount1": {
                "amount": "0.00",
                "code": "CAD"
              },
              "categoryid": "5372366",
             }
           ]
         }
       ],
      "start_date": "2017-01-01",
      "categories": {
        "5372366": {
          "category": "Gas",
          "subcategory_name": "Gas",
          "categoryid": "5372366"
        },
        "5372370": {
          "category": "Personal",
          "subcategory_name": "personal (general)",
          "categoryid": 5372370
        }
      },
      "company_name": "My Company Name"
      }
    }
  }
}

Example Searches with Expense Details

Get Expense Details Between a Specific Range

Request: GET 
 https://api.freshbooks.com/accounting/account/&ltaccountid&gt/reports/accounting/expense_details?start_date=2016-04-19&end_date=2017-07-25 

Get Expense Details Excluding Personal Expenses

Request: GET 
 https://api.freshbooks.com/accounting/account/&ltaccountid&gt/reports/accounting/expense_details?start_date=2016-04-19&exclude_personal=true&end_date=2017-09-17

Get Profit/Loss Report

curl -X GET 
 "Authorization: <a token >" 
 "Api-Version: alpha" 
 "Content-Type: application/json" 
https://api.freshbooks.com/accounting/account/<accountid>/reports/accounting/profitloss_entity?start_date=2017-01-01&end_date=2017-12-31"
code>

Response:


{
 "response": {
   "result": {
     "profitloss": {
       "net_profit": {
         "entry_type": "credit",
         "total": {
           "amount": "-1572.18",
           "code": "CAD"
         },
         "data": [],
         "description": "Net Profit (CAD)",
         "children": []
       },
       "total_income": {
         "entry_type": "credit",
         "total": {
           "amount": "0.00",
           "code": "CAD"
         },
         "data": [],
         "description": "Gross Profit",
         "children": []
       },
       "end_date": "2017-12-31",
       "income": [
         {
           "entry_type": "credit",
           "total": {
             "amount": "0.00",
             "code": "CAD"
           },
           "data": [],
           "description": "Sales",
           "children": []
         },
         {
           "entry_type": "credit",
           "total": {
             "amount": "0.00",
             "code": "CAD"
           },
           "data": [],
           "description": "Cost of Goods Solds",
           "Children": []
         }
       ],
       "labels": [],
       "expenses": [
         {
           "entry_type": "credit",
           "total": {
             "amount": "854.76",
             "code": "CAD"
           },
           "data": [],
           "description": "Car & Truck Expenses",
           "children": [
          {
             "entry_type": "debit",
             "total": {
               "amount": "717.42",
               "code": "CAD"
             },
             "data": [],
             "description": "Gas",
             "children": []
           }
         ]
       },
       {
         "entry_type": "debit",
         "total": {
           "amount": "717.42",
           "code": "CAD"
         },
         "data": [],
         "description": "Personal",
         "children": [
           {
             "entry_type": "debit",
             "total": {
               "amount": "717.42",
               "code": "CAD"
             },
             "data": [],
             "description": "Personal (general)",
             "children": []
           }
         ]
       }
     ],
     "download_token": "A bunch of letters and numbers",
     "company_name": "My Company",
     "cash_based": false,
     "total_expense": {
       "entry_type": "debit",
       "total": {
         "amount": "1572.18",
         "code": "CAD"
       },
       "data": [],
       "description": "Total Expenses",
       "children": []
     },
     "resolution": null,
     "start_date": "2017-01-01",
     "currency_code": "CAD"
   }
    }
   }
  }

Example Search with Profit/loss report

Get Profit/Loss report quarterly instead of anually

Request: GET 
 https://api.freshbooks.com/accounting/account/&ltaccountid&gt/reports/accounting/profitloss?start_date=2017-01-01&end_date=2017-12-31&resolution=3m

Get Tax Summary Report

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"
    }
   }
  }
}

Search Example With Tax Summary

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 

Payments Collected Report

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

Get Account Aging Report

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/&ltaccountid&gt/reports/accounting/accounts_aging?end_date=2017-05-17