Manage Employee Addresses: Effective Dating
Employees may move to a new home or work address during their tenure with a company. These changes may impact their and/or a companyโs tax liability so effective dating should be leveraged to ensure these moves are properly recorded for compliance purposes. Proper utilization of effective dating will reduce downstream tax notices and the need for expedited/reversal payrolls as a result of last minute address changes.
Get an Employeeโs Home Addresses
The home address of an employee will determine certain tax information about them. Addresses are geocoded when created and updated to ensure validity. Use the Get an employeeโs home addresses endpoint to retrieve all employee home addresses in effective date order and to determine if there is an applicable courtesy withholding. The address with the status "active": true,
is the employeeโs current active home address. The effective_date
signifies when the employee began living at this location. โcourtesy_withholdingโ: true
indicates there is an active courtesy withholding at this location.
Courtesy Withholdings
Federal law prohibits two states from taxing the same incomeโfor employees who live and work in different states, and file more than one state tax return, reciprocal agreements exist so that they only pay income taxes to one state (usually their home state of residency) on the same wages.
Several states have reciprocal agreements with other states, ensuring that employees who work and live in those different states, donโt have to have taxes withheld in more than one of them. A courtesy withholding allows an employer to elect that Gusto will withhold and pay an employee's home state taxes instead. Learn more about reciprocity and courtesy withholdings here.
[
{
"uuid": "56260b3d-c375-415c-b77a-75d99f717193",
"employee_uuid": "7087a288-8349-4632-b92e-bc94fb79f29e",
"street_1": "644 Fay Vista",
"street_2": "Suite 842",
"city": "Richmond",
"state": "VA",
"zip": "23218",
"country": "USA",
"active": false,
"effective_date": "2021-01-01",
"courtesy_withholding": true
},
{
"uuid": "d9f74049-8769-4fba-8e0f-eceef2da4e6b",
"employee_uuid": "7087a288-8349-4632-b92e-bc94fb79f29e",
"street_1": "100 5th Ave",
"street_2": "Suite 555",
"city": "New York",
"state": "NY",
"zip": "10001",
"country": "USA",
"active": true,
"effective_date": "2022-03-03",
"courtesy_withholding": true
}
]
Create an Employeeโs Home Address
Use the Create an employeeโs home address endpoint to create a new home address for an employee. The path param for creating a new employee home address is employee_id
and you are able to set the effective_date
before, during, or after the current effective date range. It cannot be the same as an existing home address effective_date
.
curl --request POST
--url <https://api.gusto-demo.com/v1/employees/{employee_id}/{home_addresses}>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
--header 'content-type: application/json'
--data '
{
"street_1": "300 3rd Street",
"city": "San Francisco",
"state": "CA",
"zip": "94107",
"effective_date": "2023-05-15",
"courtesy_withholding": false
}
'
Update an Employeeโs Home Address
Use the Update an employeeโs home address endpoint to update an employeeโs home address. The path param for updating an employeeโs home address is home_address_uuid
and the correct version is required in the body. This endpoint allows you to update any attribute except uuid
, version
, employee_uuid
, active
, and country
. You cannot update the effective date of the earliest home address.
curl --request PUT
--url <https://api.gusto-demo.com/v1/home_addresses/{home_address_uuid}>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
--header 'content-type: application/json'
--data '
{
"version": "fe75bd065ff48b91c35fe8ff842f986c",
"street_1": "300 3rd Street",
"city": "San Francisco",
"state": "CA",
"zip": "94107",
"effective_date": "2023-06-01",
"courtesy_withholding": true
}
'
Delete an Employeeโs Home Address
Use the Delete an employeeโs home address endpoint to delete an employeeโs home address. An employeeโs active home address cannot be deleted so youโll need to designate another home address to be active first. The path param for deleting an employeeโs home address is home_address_uuid
.
curl --request DELETE
--url <https://api.gusto-demo.com/v1/home_addresses/{home_address_uuid}>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
Get an Employeeโs Work Addresses
The work address of an employee will determine a companyโs state tax liability. Use the Get an employeeโs work addresses endpoint to retrieve all employee work addresses in effective date order. The address with the status "active": true,
is the employeeโs current active work address. The effective_date
signifies when the employee began working at this location.
[
{
"uuid": "fc5b87dc-8d88-400d-b2da-c3587a7e5b15",
"employee_uuid": "7597f3e3-31d4-4953-83a5-f95be78d2fe2",
"company_location_uuid": "d9456c94-f561-40d2-afec-919da5f59196",
"effective_date": "2022-01-01",
"active": false,
"version": "139f9769a2e543e6a1259173e1ee3b8d",
"street_1": "800 Adolfo Gardens",
"street_2": "Suite 419",
"city": "Bremen",
"state": "AL",
"zip": "35033",
"country": "USA"
},
{
"uuid": "be1c2e24-af86-4c36-b34e-3a55dbcdbdab",
"employee_uuid": "7597f3e3-31d4-4953-83a5-f95be78d2fe2",
"company_location_uuid": "6a119be7-b4b0-4e27-aaa0-89d5f2524635",
"effective_date": "2023-01-01",
"active": true,
"version": "bbe8d4c741339c6b9e0e2e1c1b120816",
"street_1": "2216 Icie Villages",
"street_2": "Apt. 798",
"city": "Big Delta",
"state": "AK",
"zip": "99737",
"country": "USA"
}
]
Create an Employeeโs Work Address
In order to create an employeeโs work address, the address must first exist at the company level. Use the Get company locations endpoint to determine if the company address is available. If the address has not yet been added, use the Create a company location endpoint to create the new company location.
curl --request POST
--url <https://api.gusto-demo.com/v1/companies/{company_id}/locations>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
--header 'content-type: application/json'
--data '
{
"country": "USA",
"phone_number": "8009360383",
"street_1": "425 2nd Street",
"city": "San Francisco",
"state": "CA",
"zip": "94107"
}
'
After the address has been created at the company level, use the Create an employee work address endpoint to assign an employee to the new work address. The path param for creating a new employee work address is employee_id
and the request body params are location_uuid
from the company location and effective_date
.
curl --request POST
--url <https://api.gusto-demo.com/v1/employees/{employee_id}/work_addresses>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
--header 'content-type: application/json'
--data '
{
"location_uuid": "04552eb9-7829-4b18-ae96-6983552948df",
"effective_date": "2023-06-15"
}
'
Update an Employeeโs Work Address
Use the Update an employee work address endpoint to update an employeeโs work address. The path param for updating an employeeโs work address is work_address_uuid
and the correct version is required in the body. The only updatable attributes are effective_date
and location_uuid
.
curl --request PUT
--url <https://api.gusto-demo.com/v1/work_addresses/{work_address_uuid}>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
--header 'content-type: application/json'
--data '
{
"location_uuid": "04552eb9-7829-4b18-ae96-6983552948df",
"effective_date": "2023-06-20",
"version": "e6db1baa29d3df1eb307ff6a12c778da"
}
'
Delete an Employeeโs Work Address
Use the Delete an employee work address endpoint to delete an employeeโs work address. An employeeโs active work address cannot be deleted so youโll need to designate another work address to be active first. The path param for deleting an employeeโs work address is work_address_uuid
.
curl --request DELETE
--url <https://api.gusto-demo.com/v1/work_addresses/{work_address_uuid}>
--header 'accept: application/json'
--header 'authorization: Bearer access_token'
Updated over 1 year ago