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:

FieldDescriptionFormat
dateDate that the revenue was depositedyyyy-MM-dd or yyyy-MM-dd'T'HH:mm:ss.SSSZ
amountTotal value of the incomeNumeric, with 2 decimal places
typeWhether the transaction was classified as Business or PersonalMust be one of the following: "BUSINESS", "NOT_BUSINESS"
businessIdId of the business that this should be assigned toNumeric
clientIdId of the client that this should be assigned to. Optional.Numeric
descriptionDescription 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:

FieldDescriptionFormat
idId of the revenue recordNumeric
typeWhether the transaction was classified as Business or PersonalMust be one of the following: "PENDING", "BUSINESS", "NOT_BUSINESS"
dateDate that the revenue was earnedyyyy-MM-dd'T'HH:mm:ss.SSSZ
amountTotal value of the depositNumeric, with 2 decimal places
businessIdId of the business that this was assigned toNumeric
clientIdId of the client that this was assigned toNumeric
descriptionDescription of the incomeAny string
pendingRevenueIdId of the associated pending revenueNumeric

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!