Personal Income (W-2)
Many individuals, including self-employed individuals, receive incomes from various streams, including W-2 or salary income. That income is not considered "business" income, and is treated differently with respect to taxes, since taxes are already withheld prior to the income being disbursed.
For folks with multiple streams of income, the W-2 income has a major impact on the tax that the individual will pay on their business income. And for folks with only a single W-2 income source, the W-2 withholding is often not an accurate indicator of what the individual will actually owe.
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, tax filing, and other accounting functionality.
If you are not using Hurdlr's Plaid integration, in order for the Hurdlr API to ingest your user's non-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.
2. Adding non-business income
If you are leveraging the Plaid integration for tracking income, please see the instructions on how to classify income transactions as personal income.
For any other 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: "PENDING", "BUSINESS", "NOT_BUSINESS" |
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-30",
"amount": 500.00,
"type": "NOT_BUSINESS",
"description": "Design implementation"
}
}'
3. Getting personal or non-business income
All business or non-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": "NOT_BUSINESS",
"date": "2021-07-30T20:58:19.000Z",
"amount": 500.00,
"description": "Payment from full-time job",
"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: "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 |
description | Description of the income | Any string |
pendingRevenueId | Id of the associated pending revenue | Numeric |
To look at only the personal income records, you will want to filter the response to only records with type
equal to "PERSONAL".
4. Next steps
Once you have pushed your user's non-business income into the Hurdlr API, you are ready to start pulling tax estimates or process a tax filing!
Updated about 3 years ago