1. Getting estimated payments
Once you’ve submitted a quarterly estimated payment to the IRS via the Hurdlr API, you can obtain all those payments (and their statuses) for a given user, by running the following GET request:| Field | Description | Format |
|---|---|---|
| id | Id of the estimated payment | Numeric |
| status | Status of the payment | Must be one of the following: “PENDING”, “COMPLETED”, “ERROR” |
| errorCode | Code representing the error encountered. Only populated if status="ERROR". | Must be one of the following: “INVALID_TAX_FILER_INFO”, “INVALID_PAYMENT_INFO”, “INSUFFICIENT_FUNDS”, “INVALID_PERIOD”, “OTHER_ERROR” |
| errorMessage | String that can be displayed to your user, explaining what the error is and how to resolve it. Only populated if status="ERROR". | Any string (e.g. “The name and social security number that you provided do not match. Please update and resubmit your payment.”) |
| period | Period of the estimated payment | Must be one of the following: “Q1”, “Q2”, “Q3”, “Q4” |
| year | Year for which the estimated payment was (attempted to be) made | Numeric, with 4 digits (e.g. 2021) |
| amount | Total value of the payment | Numeric, with 2 decimal places |
| paymentInfoId | Id of the paymentInfo used to (attempt to) make the payment from | Numeric |
status attribute are described below:
| Value | Use Case |
|---|---|
| PENDING | The payment is being processed by Hurdlr. Soon, the status will be updated to either “COMPLETED” or “ERROR”. You can subscribe to webhooks to get a real-time update. |
| COMPLETED | The payment was successfully made to the IRS. |
| ERROR | There was an error during the submission process. See below for the various types of errors. |
status="ERROR", you can determine what the error is, and alert your user accordingly, using the table below:
| Value | Use Case | errorMessage example |
|---|---|---|
| INVALID_TAX_FILER_INFO | The user’s tax filer info submission does not match the IRS’s records. The errorMessage attribute will be a descriptive as the Hurdlr API is able to be. | ”The name and social security number that you provided do not match. Please update and resubmit your payment.” |
| INVALID_PAYMENT_INFO | The payment info that the user submitted was not valid. | ”The bank account information provided to make the estimated payment was invalid. Please correct the bank account/routing numbers and resubmit your payment.” |
| INSUFFICIENT_FUNDS | The payment info that the user submitted did not have enough money to complete the payment. | ”The bank account used to make the estimated payment did not have enough funds to complete the payment. Please update your payment method, or add more funds to the existing payment method, and resubmit your payment.” |
| INVALID_PERIOD | Estimated payments can no longer be made for the period/year combo (e.g. Q3 2021) that was submitted. | ”The IRS is no longer accepting estimated payments for Q3 2021. Please choose a more recent period and resubmit your payment.” |
| OTHER_ERROR | Some other error has occurred. Reach out to api@tight.com for a quick diagnosis. | ”Something went wrong during your payment submission. Please contact support.” |
2. Updating payment info
You may need to fetch and/or display payment info to your user, that way they can update that info, especially in the case of anerrorCode: "INVALID_PAYMENT_INFO". You can obtain the payment info for a given user, by running the following GET request:
🚧 Masked account number For data security purposes, the response does not include theTo update an existing payment info, simply POST the updated object to the /paymentInfo endpoint; be sure to include theaccountNoandroutingNofields that were initially inputted when you added the user’s payment info. Instead, amaskfield containing the last few characters of theaccountNois used, which is typically enough information for your user to identify the account.
id attribute:
3. Updating tax filer info
You may need to fetch and/or display tax filer info to your user, that way they can update that info, especially in the case of anerrorCode: "INVALID_TAX_FILER_INFO". You can obtain the filer info for a given user, by running the following GET request:
4. Receiving webhooks (real-time updates)
You can subscribe to programmatically receive real-time updates via webhook to indicate when the status of an estimated payment changes. Contact us directly at api@tight.com to let us know the URI of the server that you would like the webhook updates to be sent to. Each webhook contains the following JSON payload:data object contains the estimated payment object that was updated. This webhook is useful so that you can update your user in real time, especially in the case of an error.
5. Resubmitting an estimated tax payment
If you’ve updated the tax filer or payment info due to an estimated tax payment error, chances are that you need to resubmit the estimated payment. You can simply POST the estimated payment; be sure to include theid attribute: