Personal Expenses

1. How it works

Through Hurdlr's Plaid or MX integration, your user's transactions are pulled into Hurdlr as soon as Plaid makes them available. All of those transactions are then run through Hurdlr's proprietary algorithms, which leverage the user's business type, accountant best practices, and the behavior of similar businesses within the Hurdlr API's 1.3M+ users. The expense transactions are then categorized in three primary ways:

a) Business Categories: Hurdlr uses categories specific to the user's business, which a non-accountant business owner can understand. For example, an Uber driver's expense might be categorized as "Car Wash".

b) Tax Categories: All expenses are also mapped to a tax category, which an accountant can easily understand. Transactions are also mapped to specific line items on the 1040 Schedule C, 1065, 1120S, and 1120.

c) Personal Categories: Hurdlr also assigns a personal category (e.g. "Pets", "Childcare") to each expense, to handle scenarios where a business owner might accidentally charge a personal expense to a business account.

2. Displaying the user's expenses and allowing them to make edits

You can easily allow your users to view their expenses and make quick edits to categories, including the ability to split across multiple categories (e.g. for an Amazon order), by rendering Hurdlr Embedded's Expense Dashboard.

3. Identifying a transaction's personal categorization

If you are building your own user experience or want to perform programmatic processing on a user's personal expenses, you can retrieve those expenses from the Hurdlr API. On each expense transaction, you will see a personalCategoryId field, which maps to one of Hurdlr's personal expense categories. To pull a user's personal expense categories, you can make the following GET call. Be sure to include that user's access_token in the headers.

curl \
  --request GET \
  --url https://sandbox.hurdlr.com/rest/v5/expenses/personalCategories?lastUpdatedDate=1970-01-01 \
  --header 'Authorization: Bearer ${access_token}' \
  --header 'Content-Type: application/json' \

The response from GET /personalCategories contains an array of the user's personal expense categories:

{
  "data": [
    {
      "id": 271884,
      "name": "Travel",
      "hasChilds": true,
      "parentCategoryId": null,
      "status": "ACTIVE",
      "lastUpdatedDate": "2021-10-11T15:36:24.000Z"
    },
    {
      "id": 271885,
      "name": "Airlines",
      "hasChilds": false,
      "parentCategoryId": 271884,
      "status": "ACTIVE",
      "lastUpdatedDate": "2021-10-11T15:36:24.000Z"
    },
    ...
  ],
  "lastUpdatedDate": "2021-10-11T15:38:57.908Z"
}

On each personal expense category, you may find the following attributes to be of particular interest:

FieldDescriptionFormat
idId of the personal category recordNumeric
nameName of the personal expense categoryString