Skip to main content

Vendors

Write

Vendor objects represent top-level vendor data from AppFolio® — the payee records that bills and dispatched work orders reference. Skywalk API lets you list the vendors in your account and create new ones.

The Vendor Object

Attributes


appfolioIdstring
AppFolio ID of the vendor.
Example:
"466"

companyNamestring
Company name of the vendor, or null when the vendor is a person.
Example:
"ACME Plumbing Inc."

namestring
Personal name of the vendor as "Last, First", or null when the vendor is a company.
Example:
null

fullAddressstring
Full street address of the vendor on one line, as displayed.
Example:
"1234 Warm Weather Rd. Los Angeles, CA 90001"

phoneNumbersPhoneNumber[]
Phone numbers of the vendor, each with a "label" (Office, Mobile, Home or Fax) and the "phone" number. Empty when none is on file.
Example:
[{"label":"Office","phone":"(555) 123-4567"}]

emailstring
Email address of the vendor, or null.
Example:
null


More Attributes


address.streetstring

address.street2string

address.citystring

address.statestring

address.zipstring

defaultGLAccountstring

paymentTypestring

tagsstring[]

The Vendor Object
{
"appfolioId": "466",
"companyName": "ACME Plumbing Inc.",
"name": null,
"firstName": null,
"lastName": null,
"fullAddress": "1234 Warm Weather Rd. Los Angeles, CA 90001",
"address": {
"street": "1234 Warm Weather Rd.",
"street2": null,
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
},
"phoneNumbers": [
{
"label": "Office",
"phone": "(555) 123-4567"
}
],
"email": null,
"defaultGLAccount": null,
"paymentType": "check",
"send1099": false,
"workersCompExpires": null,
"liabilityInsExpires": null,
"epaCertExpires": null,
"stateLicExpires": null,
"contractExpires": null,
"tags": [],
"enrolledInNetVendor": false,
"autoInsExpires": null,
"vendorTrades": null,
"doNotUseForWorkOrder": false,
"terms": null
}

Get All Vendors

GET /v1/vendors

Follows: AuthenticationCachingPollingList Response FormatScheduled Job

The vendors endpoint returns a list of all vendors in your AppFolio® account. This endpoint should respond immediately with your most recently cached data.

Parameters


This endpoint requires no additional parameters.

Returns


The standard List Response Format with a data property containing an array of Vendor objects.

GET /v1/vendors
curl -X GET 'https://api.skywalkapi.com/v1/vendors' \
-H "X-API-Key: PUT_YOUR_API_KEY_HERE"
Response
{
"meta": {
"status": "ok",
"path": "/v1/vendors",
"query": {},
"count": 1,
"lastUpdated": 1610992228
},
"links": {
"next": "/v1/vendors?cursor=abcdefg"
},
"data": [
{
"appfolioId": "466",
"companyName": "ACME Plumbing Inc.",
"name": null,
"firstName": null,
"lastName": null,
"fullAddress": "1234 Warm Weather Rd. Los Angeles, CA 90001",
"address": {
"street": "1234 Warm Weather Rd.",
"street2": null,
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
},
"phoneNumbers": [
{
"label": "Office",
"phone": "(555) 123-4567"
}
],
"email": null,
"defaultGLAccount": null,
"paymentType": "check",
"send1099": false,
"workersCompExpires": null,
"liabilityInsExpires": null,
"epaCertExpires": null,
"stateLicExpires": null,
"contractExpires": null,
"tags": [],
"enrolledInNetVendor": false,
"autoInsExpires": null,
"vendorTrades": null,
"doNotUseForWorkOrder": false,
"terms": null
}
]
}

Create a Vendor

POST /v1/vendors Write

Follows: AuthenticationCachingPollingList Response Format

Creates a new vendor.

Parameters


firstNamestring
First name of the vendor contact. Required (with lastName) unless companyName is provided.

lastNamestring
Last name of the vendor contact. Required (with firstName) unless companyName is provided.

companyNamestring
Company name of the vendor. Required unless firstName and lastName are provided.

useCompanyNameAsDisplayNameboolean
Display the company name rather than the personal name. Defaults to true when only a company name is given, false otherwise. Requires companyName when set to true.

vendorTypeselect
Vendor type: general, utility, external_management_company or in-house_maintenance. Defaults to general.
Possible Values:  
general
utility
external_management_company
in-house_maintenance

addressStreetstring
Line one of the vendor's street address.

addressStreet2string
Line two of the vendor's street address.

addressCitystring
City of the vendor's address.

addressStatestring
State or region code of the vendor's address, e.g. CA.

addressZipstring
Postal code of the vendor's address.

addressCountrystring
ISO-2 country code of the vendor's address. Defaults to US when any other address field is given.

phoneNumberstring
Phone number for the vendor.

phoneLabelselect
Label for the phone number. Defaults to Office when a phoneNumber is given.
Possible Values:  
Office
Mobile
Home
Fax

emailstring
Email address for the vendor.

glAccountIdselect
AppFolio ID of the default GL account for the vendor's bills.

tradeIdsmulti
AppFolio IDs of the work order categories (trades) the vendor covers.

taxIdstring
Taxpayer ID (SSN or EIN) for 1099 reporting. Accepted on create but never included in a response.

taxpayerNamestring
Name used for 1099 tax reporting. Defaults to the company name when useCompanyNameAsDisplayName is set, otherwise to "firstName lastName".

send1099boolean
Whether the vendor receives a 1099. Defaults to true.

 

Returns


The standard List Response Format with a data property containing an array with one Created Vendor object.

The response reflects the vendor as stored in AppFolio, not the request as submitted. The address, phone number and email are returned as address, phoneNumbers and email, the same way the Vendor list row returns them; glAccountId is returned as the account's displayed defaultGLAccount, and tradeIds as the displayed vendorTrades string.

POST /v1/vendors
curl -X POST 'https://api.skywalkapi.com/v1/vendors' \
-H "X-API-Key: PUT_YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"companyName":"ACME Plumbing Inc.","firstName":"Jane","lastName":"Smith","phoneNumber":"(555) 123-4567","email":"jane.smith@example.com","addressStreet":"1234 Warm Weather Rd.","addressCity":"Los Angeles","addressState":"CA","addressZip":"90001","tradeIds":["6"]}'
Response
{
"meta": {
"status": "ok",
"path": "/v1/vendors",
"query": {
"companyName": "ACME Plumbing Inc."
},
"count": 1,
"lastUpdated": 1610992228
},
"errors": [],
"data": [
{
"appfolioId": "466",
"name": "Smith, Jane",
"firstName": "Jane",
"lastName": "Smith",
"companyName": "ACME Plumbing Inc.",
"useCompanyNameAsDisplayName": true,
"vendorType": "general",
"taxpayerName": "ACME Plumbing Inc.",
"send1099": true,
"address": {
"street": "1234 Warm Weather Rd.",
"street2": null,
"city": "Los Angeles",
"state": "CA",
"zip": "90001",
"country": "US"
},
"phoneNumbers": [
{
"label": "Office",
"phone": "(555) 123-4567"
}
],
"email": "jane.smith@example.com",
"defaultGLAccount": "216-240 - Unit:Plumbing Repairs",
"vendorTrades": "Plumbing"
}
]
}

The Created Vendor Object

Create a Vendor returns the vendor as stored in AppFolio®. Fields it shares with the Vendor list row, including name, defaultGLAccount and vendorTrades, read the same way; it also carries vendorType, taxpayerName, useCompanyNameAsDisplayName and the address country. Use appfolioId to find the same vendor in the list.

Attributes


appfolioIdstring
Unique AppFolio ID of the created vendor.
Example:
"466"

namestring
Personal name of the vendor as "Last, First", or null when the vendor is a company.
Example:
"Smith, Jane"

firstNamestring
First name of the vendor contact.
Example:
"Jane"

lastNamestring
Last name of the vendor contact.
Example:
"Smith"

companyNamestring
Company name of the vendor.
Example:
"ACME Plumbing Inc."

useCompanyNameAsDisplayNameboolean
Whether the company name is displayed rather than the personal name.
Example:
true

vendorTypestring
Vendor type: general, utility, external_management_company or in-house_maintenance.
Example:
"general"

taxpayerNamestring
Name used for 1099 tax reporting.
Example:
"ACME Plumbing Inc."

send1099boolean
Whether the vendor receives a 1099.
Example:
true

phoneNumbersPhoneNumber[]
Phone numbers of the vendor, each with a "label" (Office, Mobile, Home or Fax) and the "phone" number. Empty when none was provided.
Example:
[{"label":"Office","phone":"(555) 123-4567"}]

emailstring
Email address of the vendor, or null when none was provided.
Example:
"jane.smith@example.com"

defaultGLAccountstring
Default GL account for the vendor's bills, as displayed (e.g. "216-240 - Unit:Plumbing Repairs"), or null when none is set.
Example:
"216-240 - Unit:Plumbing Repairs"

vendorTradesstring
Trades (work order categories) of the vendor as one displayed string, or null.
Example:
"Plumbing"

The Created Vendor Object
{
"appfolioId": "466",
"name": "Smith, Jane",
"firstName": "Jane",
"lastName": "Smith",
"companyName": "ACME Plumbing Inc.",
"useCompanyNameAsDisplayName": true,
"vendorType": "general",
"taxpayerName": "ACME Plumbing Inc.",
"send1099": true,
"address": {
"street": "1234 Warm Weather Rd.",
"street2": null,
"city": "Los Angeles",
"state": "CA",
"zip": "90001",
"country": "US"
},
"phoneNumbers": [
{
"label": "Office",
"phone": "(555) 123-4567"
}
],
"email": "jane.smith@example.com",
"defaultGLAccount": "216-240 - Unit:Plumbing Repairs",
"vendorTrades": "Plumbing"
}