FreshBooks Classic Integration With Salesforce

FreshBooks is a cloud-based accounting software service designed for small businesses and service providers that send invoices to clients and get paid for their time and expertise. It tracks time, create invoices, track expenses, provide reports, design estimates, send follow up emails, and allow the team members and clients to log in into the account.

FreshBooks API

  • Allows developers to connect FreshBooks with their systems.
  • Helps in delivering invoices over email and tracks accounts.
  • Payment histories for the customers are recorded for their ease and payment is also collected online by credit card, PayPal, or eCheck, etc.
  • Allows the business to manage clients, create invoices, and record payments hence makes it easier to slide into the existing billing system of the company.

Features

  • It provides REST API for integrating businesses and their billing systems with FreshBooks.
  • FreshBooks API has a single point of entry. All FreshBooks API communication is encrypted over HTTPS, therefore any non-secure requests made are automatically rejected.
  • There is no limit on the number of API requests per day. However if too many calls are made within a short range of time then only maximum of 100 results are returned.

FreshBooks provides two API versions: Classic and New

  1. FreshBooks Classic Features
    • It tracks time, tasks, and expenses on the team projects.
    • Builds invoices from the tracked time and expenses and also mail them to the clients.
    • Organizes team's work by clients and projects.
    • Automatically send out invoices and follow-up with slow paying clients.
    • FreshBooks API requests are composed of lightweight XML. All the requests and responses that are made through this API are in the form of XML
  2. FreshBooks New Features
    • It creates, manages, and send invoices(one-time or recurring) to clients for the given products and services.
    • Records and tracks expenses incurred.
    • Creates and manages client information all in one place.
    • Create billable and non-billable projects for easy collaboration with the team.
    • FreshBooks data is accessed using JSON.

Astrea has an app on Salesforce AppExchange for integrating Salesforce with FreshBooks New version. The app is available for download at:Salesforce AppExchange.

Authentication
There are two ways to authenticate when using the API – using a token-based method or OAuth.

  1. OAuth : It is used when we need to build an application for other people to use or an application that requires access to users’ FreshBooks data. It allows secure API authorization and does not ask the user to provide their user credentials to a third party.

  2. Token-based Authentication : It is used for things like recurring billing or invoicing integration into one’s organization’s software.

Challenge
Client wanted us to integrate Classic FreshBooks Invoice data with Salesforce Order standard object.

Solution

  • We have used Token-based Authentication. A unique authentication token is assigned to the client’s account. For every API request, HTTP basic authorization is used to present the unique authorization token assigned to the account.
  • The client’s orders are synced with the Invoices in FreshBooks by clicking on Push to FreshBooks custom detail page button on Order object.
  • On clicking the button, the fields of the Order are mapped to the Invoice in FreshBooks of the related Account and the user is directed to the Invoice detail page of the FreshBooks.
  • Invoices in FreshBooks are needed to be created with same Order number. No two invoices can have same Order number(a check is maintained for this).