Self-Employed & Business Income

Self-employed individuals often have multiple streams of income, and those individuals generally have to file one Form 1040 Schedule C for each of those businesses.

LLCs, LLPs and S Corps also, obviously, need to track their business income, as that income ultimately passes through to the owner's tax filing.

In both of the above cases, the Hurdlr Income Streams API has you covered.

1. How it works

The Hurdlr API is able to ingest data from many different income streams, enabling you to easily provide your users with accurate tax calculations, financial reporting, and other accounting functionality.

If you are not using Hurdlr's Plaid integration, in order for the Hurdlr API to ingest your user's self-employed and business income data, you can simply push each income record, as it is earned, to the Hurdlr API. The Hurdlr API will take care of the rest.

Hurdlr allows you to track the income at the business-level, which is especially useful for self-employed folks who are earning income via multiple businesses. Optionally, the Hurdlr Income Streams API lets you track income at the client-level, which enables very powerful financial reporting.

Once you have your user's self-employed and business income pushed into the Hurdlr API (less than one calendar day of labor), you can immediately start using all of Hurdlr's Tax Calculations, Financial Reporting, and other functionality.

2. Adding self-employed or business income

If you are leveraging the Plaid integration for tracking income, please see the instructions on how to classify income transactions as business income.

For any other business income streams from sources outside of the Plaid integration, you can simply add that income by making a POST call to the Hurdlr API.

You should update the following fields on a new JSON object when adding business income:

Field

Description

Format

date

Date that the revenue was deposited

yyyy-MM-dd or yyyy-MM-dd'T'HH:mm:ss.SSSZ

amount

Total value of the income

Numeric, with 2 decimal places

type

Whether the transaction was classified as Business or Personal

Must be one of the following: "BUSINESS", "NOT_BUSINESS"

businessId

Id of the business that this should be assigned to

Numeric

clientId

Id of the client that this should be assigned to. Optional.

Numeric

description

Description of the income. Optional.

Any string

To add the income, simply POST the income's JSON object to the /revenue endpoint:

curl \
  --request POST \
  --url https://sandbox.hurdlr.com/rest/v5/revenue/revenue \
  --header 'Authorization: Bearer ${access_token}' \
  --header 'Content-Type: application/json' \
  --data '{
    "revenue": {
      "date": "2021-07-30T20:00:00.000Z",
      "amount": 500.00,
      "type": "BUSINESS",
      "businessId": 416080,
      "clientId": 805609,
      "description": "Design implementation"
    }
  }'

3. Getting self-employed or business income

All self-employed or business income can be accessed in the list of revenues, via the /revenues endpoint:

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

The response from GET /revenues contains an array of the user's revenues:

{
  "data": [
    {
      "id": 760731,
      "type": "BUSINESS",
      "date": "2021-08-30T20:58:19.000Z",
      "amount": 399.99,
      "businessId": 416080,
      "clientId": 805609,
      "description": "Payment for design work",
      
      // Below fields populated if transaction originated from Plaid
      "plaidInstitutionId": "ins_5",
      "plaidDisplayName": "Citi Business Checking",
      "plaidAccountNo": "3333",
      "plaidItemAccountId": 17331,
      "apiName": "PLAID",
      "apiPaymentId": "Broro8rVMMUmXAdw59mvsm909M547gtxRk34B",
      // Above fields populated if transaction originated from Plaid
      
      "lastUpdatedDate": "2021-09-17T19:35:12.000Z"
    }
  ],
  "lastUpdatedDate": "2021-09-17T19:25:19.236Z"
}

On each revenue, you may find the following attributes to be of particular interest, especially the type field:

Field

Description

Format

id

Id of the revenue record

Numeric

type

Whether the transaction was classified as Business or Personal

Must be one of the following: "PENDING", "BUSINESS", "NOT_BUSINESS"

date

Date that the revenue was earned

yyyy-MM-dd'T'HH:mm:ss.SSSZ

amount

Total value of the deposit

Numeric, with 2 decimal places

businessId

Id of the business that this was assigned to

Numeric

clientId

Id of the client that this was assigned to

Numeric

description

Description of the income

Any string

pendingRevenueId

Id of the associated pending revenue

Numeric

4. Next steps

Once you have pushed your user's self-employed and business income into the Hurdlr API, you are ready to start pulling tax estimates!