TIN Verification
Taxpayer Identification Number (TIN) Verification enables you to confirm that a user
's information is correct, in the eyes of the IRS, before submitting any tax documents or payments. Not verifying your user
's TIN in advance increases the risk of missing due dates and incurring fines.
TIN vs SSN vs ITIN vs EIN
TIN stands for Taxpayer Identification Number. Social Security Numbers (SSN), Individual Taxpayer Identification Number (ITIN) and Employer Identification Number (EIN) are all types of TINs.
Verification Requirements
To verify a user
's legal name and TIN match, you must be the 1099 Issuer for that user
.
If you are verifying SSNs or ITINs, the user
model must include firstName
, lastName
and socialSecurityNumber
.
{
"data": {
"userId": "<<testUserId>>",
"profile": {
"firstName": "Ada",
"lastName": "Lovelace",
"socialSecurityNumber": "123456789"
},
}
}
If you are verifying EINs, the user
model must include a business
object with name
and ein
.
{
"data": {
"userId": "<<testUserId>>",
"business": {
"name": "InGen Corporation",
"ein": "123456789"
}
}
}
TIN Verification is off by default in Production
TIN Verification is an app-level setting that can be turned on after talking with an Abound representative. TIN Verification is defaulted on in Sandbox to enable testing.
Checking if a TIN is verified
The SSN or EIN verification status can be found by fetching the user
record and checking either the ssnVerification
or einVerification
objects
Below is an example response from a GET /users/{userId}
call:
{
"data": {
"userId": "<<testUserId>>",
"email": "[email protected]",
"profile": {
"firstName": "Ada",
"lastName": "Lovelace",
"socialSecurityNumber": "123456789"
},
"ssnVerification": {
"status": "verified", // see possible statuses below
"message": "SSN and legal name match."
},
"einVerification": {
"status": "unverified", // see possible statuses below
}
}
}
Abound will attempt to verify TIN requests in real time, but in the event of a government outage we will queue for processing when those government services are made available.
Here are the possible values of the SSN or EIN verification statuses:
Verification Status | Description |
---|---|
unverified | A verification check has not been attempted. |
verified | The IRS confirmed a successful match. |
mismatch | The IRS confirmed there was no name + TIN match. |
pending | The verification has been queued and will be processed. |
error | This is a system-failure error and should rarely, if ever, occur. |
lockedOut | This is typically a result from too many verification requests with an invalid name and TIN combination. The limit is 3 tries in 24 hours. |
Testing verification statuses
In the sandbox environment, you can force specific verification statuses by passing certain values defined in Testing 1099 Documents in Sandbox
Triggering a new verification
A new TIN verification occurs whenever there is a new user created from a POST /user
call or when a user's applicable information is updated on a PUT /user/{userId}
call.
Webhooks
Webhooks will be trigged on all TIN verification status changes. Below is an example of the webhook request payload that would be sent to your URL when the users.updated
event occurs:
{
"resource": "users",
"resourceId": "userId_0aa8b15c0cce59aa766156e6328798c80512131a",
"resourceURL": "https://sandbox-api.withabound.com/<<apiVersion>>/users/userId_0aa8b15c0cce59aa766156e6328798c80512131a",
"event": "users.updated",
"userId": "userId_0aa8b15c0cce59aa766156e6328798c80512131a",
"webhookId": "webhookId_XXXXXXXXXXXXXXX",
"webhookURL": "https://webhook.site/e665ac70-4914-4d8b-ab48-fa2b47680b4a",
"webhookRequestId": "webhookRequestId_YYYYYYYYYYYY"
}
Bulk Verifications
For bulk TIN verification requests please contact us.
Updated 11 days ago