The "user" Resource

In the tax world everything is organized by an entity's TIN. However, your software accounts may not be organized the same way.

For example, Ada Lovelace who has only one software account with your product, but may require earnings to be reported both to their sole proprietorship (with their SSN) and as their LLC (with their EIN). When Ada logs into your their account they will expect to see all their tax docs related to both tax entities.

The answer is the user resource: an optional identifier you may associate with tin verifications, Form W-9s, and Form 1099s to organize them, across tax entities, in accordance with your product.

See how to create a user and associate it with another resource record below:

Creating a user

curl \
  --request POST \
  --url https://sandbox-api.withabound.com/<<apiVersion_v4>>/users \
  --header 'Authorization: Bearer <<apiKey_v4>>' \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "[email protected]",
    "foreignId": "your-foreign-id"
  }'
import { Abound } from "@withabound/node-sdk";

const abound = new Abound({
  appId: "<<sandbox_app_id_v4>>",
  appSecret: "<<sandbox_app_secret_v4>>",
  environment: "SANDBOX",
});

const response = await abound.users.create({
  email: "[email protected]",
  foreignId: "your-foreign-id",
});

console.log(response);
{
  "id": "userId_sampleXGMFnhOpeR",
  "createdAt": "2023-01-01T00:00:00.000Z",
  "email": "[email protected]",
  "foreignId": "your-foreign-id",
}

Associate a user with a 1099-NEC

 -curl \
   --request POST \
   --url https://sandbox-api.withabound.com/<<apiVersion_v4>>/documents/1099-nec \
   --header 'Authorization: Bearer <<apiKey_v4>>' \
   --header 'Content-Type: application/json' \
   --data '{
     "userId": "userId_sampleXGMFnhOpeR",
     "filingYear": 2023,
     "payer": {
       "name": "Hooli",
       "tin": "tinFingerprint_sample847jI1LwxF",
       "address": "1401 N Shoreline Blvd",
       "address2": "Suite 1",
       "city": "Mountain View",
       "state": "CA",
       "postalCode": "94043",
       "country": "US",
       "phoneNumber": "6501014096",
     },
     "payee": {
       "name": "Ada Lovelace",
       "tin": "tinFingerprint_samplehy2BWO6JJG",
       "address": "256 Byron Street",
       "address2": "Suite 32",
       "city": "Palo Alto",
       "state": "CA",
       "postalCode": "94306",
       "country": "US",
     },
     "formFields": {
       "accountNumber": "1000000001",
       "nonemployeeCompensation": 23423,
       "hasDirectSalesOver5000": false,
       "federalIncomeTaxWithheld": 0,
       "stateTaxInfo": [
         {
           "stateTaxWithheld": 0,
           "filingState": "CA",
           "payerStateId": "1234567891",
           "stateIncome": 345543
         }
        ]
      }
    }'
{
  "id": "documentId_samplegU0eR8oc8a",
  "createdAt": "2023-01-01T00:00:00.000Z",
  "status": "CREATED",
  "userId": "userId_sampleXGMFnhOpeR",
  ...
}

List 1099-NECs by userId

Now you can list 1099-NECs by passing the userId as a query parameter.

curl \
  --request GET \
  --url 'https://sandbox-api.withabound.com/v4/documents/1099-nec?userId=userId_sampleXGMFnhOpeR' \
  --header 'Authorization: Bearer <<apiKey_v4>>' \
  --header 'Content-Type: application/json'
[
  {
    "id": "documentId_samplegU0eR8oc8a",
    "createdAt": "2023-01-01T00:00:00.000Z",
    "status": "CREATED",
    "userId": "userId_sampleXGMFnhOpeR",
    ...
  }
]


Whatโ€™s Next