Skip to Main Content
×
Freshbooks
Official App
Free – Google Play
Get it
FreshBooks is Loved by American Small Business Owners
FreshBooks is Loved by Canadian Small Business Owners
FreshBooks is Loved by Small Business Owners in the UK
Dev Blog

New API Features rolled out Oct 19th

by Jason Diller on October 19/2010

Hi everybody, we’ve just released a whole bunch of API features out into the world. So many, in fact, that I won’t waste any more of your time with needless preamble. Here we go:

Project Hour Budgeting

Last month, we added hour budgeting to projects. Starting today you can now get and set the hour budget for projects via the API. The ‘hour_budget’ element will be included in the output from both ‘project.list’ and ‘project.get’.

Sample output:

<response xmlns="https://www.freshbooks.com/api/" status="ok">
<project>
<project_id>1</project_id>
<name>A client project</name>
<description></description>
<rate>500</rate>
<bill_method>flat-rate</bill_method>
<client_id>2</client_id>
<!--hour budget is now included-->
<hour_budget>56.00</hour_budget>
<staff>
<staff_id>1</staff_id>
</staff>
</project>
</response>

Likewise, you can set the project’s hour budget in both ‘project.create’ and ‘project.update’:

Sample Input:

<?xml version="1.0" encoding="utf-8"?>
<request method="project.update">
<project>
<project_id>15</project_id>
<hour_budget>1000</hour_budget>
</project>
</request>

But wait there’s more…

Search Clients by Notes

You can now use the Notes field to filter clients when making calls to ‘client.list’. The filter will match the specified string anywhere in the notes field. (Equivalent to specifying “…WHERE notes like ‘%filter_value%’” in SQL).

Sample Input:

This request:

<?xml version="1.0" encoding="utf-8"?>
<request method="client.list">
<notes>candy</notes>
</request>

Produces this output:

<?xml version="1.0" encoding="utf-8"?>
<response xmlns="https://www.freshbooks.com/api/" status="ok">
<clients page="1" per_page="15" pages="1" total="2">
<client>
<client_id>13</client_id>
<first_name>Jane</first_name>
<last_name>Doe</last_name>
<organization>ABC Corp</organization>
<!---etc etc etc---->
<notes>Loves candy</notes>
</client>
<client>
<client_id<23</client_id>
<first_name>Jessica</first_name>
<last_name>Smith</last_name>
<organization>XYZ Corp</organization>
<!---etc etc etc---->
<notes>Hates candy</notes>
</client>
</clients>
</response>

As exciting as those two updates are, there’s still more yet!

Direct Access to Lines for Recurring Profiles and Invoices

Prior to today, updating, deleting, or adding a single line on an invoice or recurring profile meant resubmitting ALL of the lines for that object, changing only the details that you wanted to update. This is cumbersome, and potentially error prone. Starting today, we’re introducing six new API methods specifically for working with line items on Recurring Profiles and Invoices without having to effectively recreate the whole document every time.

Since they’re new methods, I’ll just list them here and link to the documentation where you can read all the details and see examples:

It should be reasonably evident what each of those methods do, but do check out the documentation for the nitty gritty details.

Of course, you’re free to continue using the existing *.update methods to make changes to lines, and your existing code will work as it always has. There are no breaking changes in this update.

All these features are live now, and ready for use. As always, developers can call or email for support just like everyone else, so if you’d like clarification on anything, need a hand getting your integration going, or just want to say hi. Give us a call or drop us an email.