Karbon API for time and billing markup and export to QuickBooks Online (QBO)

  • 16 December 2021
  • 5 replies
  • 202 views

Userlevel 7
Badge +19
  • Sr. Karbon Community Guide
  • 1142 replies

My hope is to produce an spreadsheet that:

  • pulls in the relevant information from Karbon by calling the data from the API
  • present it for billing mark-up/mark-down
  • export the information for invoice import in QBO via .csv at the time-entry level

I’d love to connect with anyone else interested in this project and will happily share the results of my work for others who might find it useful.

Update: First Draft complete

Known Limitations

  • Time entry dates are limited to the time sheet start date - further detail is not exposed to the API
  • Estimated budgets are not available via API (removed by Karbon and planned for re-add in 2022)
  • Only available on Windows

5 replies

Userlevel 7
Badge +19

First things:

  1. Register for API access and receive your tokens

     

  2.  Save your tokens

    It’s important to save your tokens so that the file can find them. I recommend creating a folder in your documents with a path like this:

    Documents\Karbon Time & Billing\resources

    Each file should be a simple text file with nothing but your key. Use the names shown in the screenshot.

     

  3.  Download the latest file and connect your tokens
    1. I’ll have further instructions here soon

     

Userlevel 7
Badge +19

-- I will update this as I go along --

List of Open Issues:

  1. Duplicate Time card data

    Problem

    When requesting Timesheet information, filtering by work item key, and expanding to get time card data, much of the time card data is duplicated and lists different work item keys than I expect.

    Analysis

    I think what’s happening is that I’m getting all time sheets that include the work item key that I supply, but those time sheets also have many other time cards attached.

    Attempted Solutions

    1. My attempt to resolve is to drill down through the data until I get to the TimeEntryKey and remove all duplicates.
    2. Fixed: I’m creating a Cartesian product somehow in how I am looping through the time sheets - Fixed this - Error in my code
    3. I switched to pulling all timesheets with start dates after December 31, 2020, which will encompass all of our time sheets. The result is 488 time sheets which I can expand to get the time entries. For some reason, I’m still getting duplicate time cards when expanding the time sheets. My temporary resolution is to remove the duplicates based on time card keys.
    4.  
  2. No date passed to the time entry

    Problem

    When making the API call below, time entries come through without dates.

    https://api.karbonhq.com/V3/Timesheets?$filter=(StartDate gt 2020-12-31T00:00:00Z)&$expand=TimeEntries

     The only date that I can use is the start or end date of the timesheet.

    Analysis

    The time entries are children of the time sheet but they have a composite key for some reason.

    And though they time entries do not have a date and time associated with them, they do have a key that I don’t know that could link to a date table.

    Attempted Solutions

    1. Contact Karbon support for additional documentation
    2. Use the time sheet start date as the date for the time entry (not ideal, but workable)
    3. Request the addition of time entry data to the API

     

  3.  

No fix available right now.

  •  Estimated Budgets return “null”

    Looks like the API documentation is out of date and estimated budgets are no longer supported as part of the API.

  •  
Userlevel 4
Badge +4

@max the 2022 roadmap preview had a WIP report coming in Q2 or Q3. Would the WIP report be similar to what you are attempting to create here?

Userlevel 4
Badge +4

My notes say something about aggregating unbilled Work in Progress (WIP) in reporting for late 2022.....

Userlevel 7
Badge +19

Hi Gary! I’m excited for the full suite of Karbon-developed time and billing features which will likely include and supersede what I’m attempting here.

The current Karbon solution for time and billing invoice export summarizes the time entries to the work item level and requires that a Karbon CSM run the report and send it to you.

The purpose of this project is to achieve self-service time entry level reporting and export (which staff did what task type in what work item on what day for how long) to QuickBooks Online invoice import .csv.

We are using QuickBooks time right now and find it inadequate, so I plan to have this up and running by the end of the month as a stopgap until the Karbon team further develops time and billing functionality.

Does that answer your question?

Reply