@nightsquawktech/appfolio-mcp-server 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/COMMERCIAL.md +35 -0
  2. package/LICENSE +661 -0
  3. package/README.md +127 -0
  4. package/dist/catalog/index.json +1511 -0
  5. package/dist/catalog/report-spec.js +27 -0
  6. package/dist/catalog/reports/account_totals.json +112 -0
  7. package/dist/catalog/reports/additional_fees.json +73 -0
  8. package/dist/catalog/reports/aged_payables_summary.json +124 -0
  9. package/dist/catalog/reports/aged_receivables_detail.json +132 -0
  10. package/dist/catalog/reports/amenities_by_property.json +73 -0
  11. package/dist/catalog/reports/annual_budget_comparative.json +138 -0
  12. package/dist/catalog/reports/annual_budget_forecast.json +125 -0
  13. package/dist/catalog/reports/appfolio_stack_usage.json +112 -0
  14. package/dist/catalog/reports/association_work_order.json +232 -0
  15. package/dist/catalog/reports/balance_sheet.json +124 -0
  16. package/dist/catalog/reports/balance_sheet_comparative.json +126 -0
  17. package/dist/catalog/reports/balance_sheet_comparison.json +113 -0
  18. package/dist/catalog/reports/bank_account_association.json +94 -0
  19. package/dist/catalog/reports/bill_detail.json +183 -0
  20. package/dist/catalog/reports/board_of_directors.json +87 -0
  21. package/dist/catalog/reports/budget_comparative.json +162 -0
  22. package/dist/catalog/reports/budget_comparison.json +141 -0
  23. package/dist/catalog/reports/cancelled_processes.json +122 -0
  24. package/dist/catalog/reports/cash_flow.json +158 -0
  25. package/dist/catalog/reports/cash_flow_comparison.json +158 -0
  26. package/dist/catalog/reports/cash_flow_detail.json +129 -0
  27. package/dist/catalog/reports/charge_detail.json +198 -0
  28. package/dist/catalog/reports/chart_of_accounts.json +22 -0
  29. package/dist/catalog/reports/check_register.json +181 -0
  30. package/dist/catalog/reports/check_register_detail.json +181 -0
  31. package/dist/catalog/reports/completed_processes.json +117 -0
  32. package/dist/catalog/reports/delinquency.json +164 -0
  33. package/dist/catalog/reports/delinquency_as_of.json +155 -0
  34. package/dist/catalog/reports/deposit_register.json +51 -0
  35. package/dist/catalog/reports/dues_roll.json +89 -0
  36. package/dist/catalog/reports/dues_roll_itemized.json +113 -0
  37. package/dist/catalog/reports/eligible_debt_summary.json +73 -0
  38. package/dist/catalog/reports/email_delivery_errors.json +104 -0
  39. package/dist/catalog/reports/expense_distribution.json +109 -0
  40. package/dist/catalog/reports/expense_register.json +149 -0
  41. package/dist/catalog/reports/fixed_assets.json +111 -0
  42. package/dist/catalog/reports/flows_assigned_tasks.json +103 -0
  43. package/dist/catalog/reports/fund_balance_sheet.json +113 -0
  44. package/dist/catalog/reports/fund_balance_sheet_active_funds.json +113 -0
  45. package/dist/catalog/reports/fund_income_statement.json +132 -0
  46. package/dist/catalog/reports/general_ledger.json +166 -0
  47. package/dist/catalog/reports/gross_potential_rent_enhanced.json +102 -0
  48. package/dist/catalog/reports/guest_card_inquiries.json +177 -0
  49. package/dist/catalog/reports/guest_cards.json +161 -0
  50. package/dist/catalog/reports/historical_advertised_rent.json +92 -0
  51. package/dist/catalog/reports/homeowner_delinquency.json +143 -0
  52. package/dist/catalog/reports/homeowner_delinquency_as_of.json +161 -0
  53. package/dist/catalog/reports/homeowner_directory.json +126 -0
  54. package/dist/catalog/reports/homeowner_ledger.json +59 -0
  55. package/dist/catalog/reports/homeowner_prepayment_balance.json +127 -0
  56. package/dist/catalog/reports/homeowner_resale.json +107 -0
  57. package/dist/catalog/reports/homeowner_vehicle_info.json +104 -0
  58. package/dist/catalog/reports/import_variances.json +41 -0
  59. package/dist/catalog/reports/in_progress_workflows.json +181 -0
  60. package/dist/catalog/reports/inactive_guest_cards.json +134 -0
  61. package/dist/catalog/reports/income_register.json +131 -0
  62. package/dist/catalog/reports/income_statement.json +130 -0
  63. package/dist/catalog/reports/income_statement_comparative.json +140 -0
  64. package/dist/catalog/reports/income_statement_comparison.json +135 -0
  65. package/dist/catalog/reports/income_statement_date_range.json +134 -0
  66. package/dist/catalog/reports/inspection_detail.json +107 -0
  67. package/dist/catalog/reports/insurance_enforcement.json +22 -0
  68. package/dist/catalog/reports/insurance_usage.json +92 -0
  69. package/dist/catalog/reports/inventory_status.json +73 -0
  70. package/dist/catalog/reports/inventory_usage.json +131 -0
  71. package/dist/catalog/reports/keys_detail.json +131 -0
  72. package/dist/catalog/reports/late_fee_policy_comparison.json +135 -0
  73. package/dist/catalog/reports/lease_expiration_detail.json +147 -0
  74. package/dist/catalog/reports/lease_expiration_summary.json +95 -0
  75. package/dist/catalog/reports/lease_history.json +147 -0
  76. package/dist/catalog/reports/leasing_agent_performance.json +54 -0
  77. package/dist/catalog/reports/leasing_funnel_performance.json +113 -0
  78. package/dist/catalog/reports/leasing_summary.json +92 -0
  79. package/dist/catalog/reports/loans.json +95 -0
  80. package/dist/catalog/reports/occupancy_custom_fields.json +73 -0
  81. package/dist/catalog/reports/occupancy_summary.json +95 -0
  82. package/dist/catalog/reports/owner1099.json +135 -0
  83. package/dist/catalog/reports/owner1099_detail.json +156 -0
  84. package/dist/catalog/reports/owner_custom_fields.json +73 -0
  85. package/dist/catalog/reports/owner_directory.json +101 -0
  86. package/dist/catalog/reports/owner_leasing.json +115 -0
  87. package/dist/catalog/reports/owner_withholdings.json +170 -0
  88. package/dist/catalog/reports/payment_plans.json +128 -0
  89. package/dist/catalog/reports/premium_leads_billing_detail.json +70 -0
  90. package/dist/catalog/reports/project_budget_detail.json +56 -0
  91. package/dist/catalog/reports/project_directory.json +144 -0
  92. package/dist/catalog/reports/property_budget.json +83 -0
  93. package/dist/catalog/reports/property_custom_fields.json +73 -0
  94. package/dist/catalog/reports/property_directory.json +73 -0
  95. package/dist/catalog/reports/property_group_directory.json +85 -0
  96. package/dist/catalog/reports/property_performance.json +115 -0
  97. package/dist/catalog/reports/property_staff_assignments.json +73 -0
  98. package/dist/catalog/reports/prospect_source_tracking.json +92 -0
  99. package/dist/catalog/reports/purchase_order.json +163 -0
  100. package/dist/catalog/reports/receivables_activity.json +138 -0
  101. package/dist/catalog/reports/renewal_summary.json +134 -0
  102. package/dist/catalog/reports/rent_roll.json +114 -0
  103. package/dist/catalog/reports/rent_roll_commercial.json +106 -0
  104. package/dist/catalog/reports/rent_roll_itemized.json +125 -0
  105. package/dist/catalog/reports/rentable_items.json +97 -0
  106. package/dist/catalog/reports/rental_applications.json +118 -0
  107. package/dist/catalog/reports/renter_directory.json +60 -0
  108. package/dist/catalog/reports/resident_financial_activity.json +107 -0
  109. package/dist/catalog/reports/screening_assessments.json +104 -0
  110. package/dist/catalog/reports/screening_usage.json +92 -0
  111. package/dist/catalog/reports/security_deposit_funds_detail.json +141 -0
  112. package/dist/catalog/reports/showings.json +123 -0
  113. package/dist/catalog/reports/student_housing_rent_roll_by_bed.json +125 -0
  114. package/dist/catalog/reports/surveys_summary.json +118 -0
  115. package/dist/catalog/reports/tenant_debt_collections_status.json +90 -0
  116. package/dist/catalog/reports/tenant_directory.json +120 -0
  117. package/dist/catalog/reports/tenant_ledger.json +72 -0
  118. package/dist/catalog/reports/tenant_tickler.json +102 -0
  119. package/dist/catalog/reports/tenant_transactions_summary.json +97 -0
  120. package/dist/catalog/reports/tenant_unpaid_charges_summary.json +147 -0
  121. package/dist/catalog/reports/tenant_vehicle_info.json +107 -0
  122. package/dist/catalog/reports/trial_balance.json +104 -0
  123. package/dist/catalog/reports/trial_balance_by_property.json +104 -0
  124. package/dist/catalog/reports/trust_account_balance.json +116 -0
  125. package/dist/catalog/reports/trust_account_balance_detail.json +112 -0
  126. package/dist/catalog/reports/twelve_month_cash_flow.json +157 -0
  127. package/dist/catalog/reports/twelve_month_income_statement.json +147 -0
  128. package/dist/catalog/reports/unit_custom_fields.json +73 -0
  129. package/dist/catalog/reports/unit_directory.json +80 -0
  130. package/dist/catalog/reports/unit_inspection.json +95 -0
  131. package/dist/catalog/reports/unit_turn_detail.json +104 -0
  132. package/dist/catalog/reports/unit_vacancy.json +143 -0
  133. package/dist/catalog/reports/unpaid_balances_by_month.json +181 -0
  134. package/dist/catalog/reports/upcoming_activities.json +142 -0
  135. package/dist/catalog/reports/vendor1099.json +84 -0
  136. package/dist/catalog/reports/vendor_custom_fields.json +22 -0
  137. package/dist/catalog/reports/vendor_directory.json +134 -0
  138. package/dist/catalog/reports/vendor_ledger.json +122 -0
  139. package/dist/catalog/reports/vendor_ledger_enhanced.json +122 -0
  140. package/dist/catalog/reports/violation_detail.json +122 -0
  141. package/dist/catalog/reports/work_order.json +254 -0
  142. package/dist/catalog/reports/work_order_labor_summary.json +148 -0
  143. package/dist/catalog-db/endpoint-spec.js +22 -0
  144. package/dist/catalog-db/endpoints/delete_inspections_inspectionid.json +21 -0
  145. package/dist/catalog-db/endpoints/delete_inventories_id.json +21 -0
  146. package/dist/catalog-db/endpoints/delete_properties_propertyid_marketing_photos_marketingphotoid.json +27 -0
  147. package/dist/catalog-db/endpoints/delete_properties_propertyid_photos_photoid.json +27 -0
  148. package/dist/catalog-db/endpoints/delete_units_unitid_photos_photoid.json +27 -0
  149. package/dist/catalog-db/endpoints/delete_work_orders_workorderid_attachments_attachmentid.json +27 -0
  150. package/dist/catalog-db/endpoints/get_bank_accounts.json +58 -0
  151. package/dist/catalog-db/endpoints/get_bills.json +185 -0
  152. package/dist/catalog-db/endpoints/get_ca_associations.json +106 -0
  153. package/dist/catalog-db/endpoints/get_ca_bank_balances.json +101 -0
  154. package/dist/catalog-db/endpoints/get_ca_board_members.json +146 -0
  155. package/dist/catalog-db/endpoints/get_ca_homeowner_ledgers.json +70 -0
  156. package/dist/catalog-db/endpoints/get_ca_homeowners.json +151 -0
  157. package/dist/catalog-db/endpoints/get_ca_renters.json +132 -0
  158. package/dist/catalog-db/endpoints/get_ca_rules.json +76 -0
  159. package/dist/catalog-db/endpoints/get_ca_units.json +130 -0
  160. package/dist/catalog-db/endpoints/get_ca_violations.json +119 -0
  161. package/dist/catalog-db/endpoints/get_charges.json +76 -0
  162. package/dist/catalog-db/endpoints/get_corporate_entities.json +88 -0
  163. package/dist/catalog-db/endpoints/get_custom_fields.json +120 -0
  164. package/dist/catalog-db/endpoints/get_delinquent_charges.json +88 -0
  165. package/dist/catalog-db/endpoints/get_gl_accounts.json +115 -0
  166. package/dist/catalog-db/endpoints/get_gl_details.json +154 -0
  167. package/dist/catalog-db/endpoints/get_inventories.json +131 -0
  168. package/dist/catalog-db/endpoints/get_inventory_locations.json +70 -0
  169. package/dist/catalog-db/endpoints/get_jobs.json +79 -0
  170. package/dist/catalog-db/endpoints/get_journal_entries.json +137 -0
  171. package/dist/catalog-db/endpoints/get_late_fee_policies.json +148 -0
  172. package/dist/catalog-db/endpoints/get_leads.json +248 -0
  173. package/dist/catalog-db/endpoints/get_leads_notes.json +83 -0
  174. package/dist/catalog-db/endpoints/get_leases.json +70 -0
  175. package/dist/catalog-db/endpoints/get_leases_renewal_pricings.json +52 -0
  176. package/dist/catalog-db/endpoints/get_listings.json +259 -0
  177. package/dist/catalog-db/endpoints/get_occupancies_documents.json +70 -0
  178. package/dist/catalog-db/endpoints/get_owner_groups.json +230 -0
  179. package/dist/catalog-db/endpoints/get_owners.json +258 -0
  180. package/dist/catalog-db/endpoints/get_owners_attachments.json +82 -0
  181. package/dist/catalog-db/endpoints/get_owners_notes.json +71 -0
  182. package/dist/catalog-db/endpoints/get_owners_ownerid.json +247 -0
  183. package/dist/catalog-db/endpoints/get_payables.json +138 -0
  184. package/dist/catalog-db/endpoints/get_portfolios.json +70 -0
  185. package/dist/catalog-db/endpoints/get_properties.json +267 -0
  186. package/dist/catalog-db/endpoints/get_properties_attachments.json +76 -0
  187. package/dist/catalog-db/endpoints/get_properties_marketing_photos.json +76 -0
  188. package/dist/catalog-db/endpoints/get_properties_notes.json +71 -0
  189. package/dist/catalog-db/endpoints/get_properties_photos.json +76 -0
  190. package/dist/catalog-db/endpoints/get_property_groups.json +84 -0
  191. package/dist/catalog-db/endpoints/get_recurring_charges.json +106 -0
  192. package/dist/catalog-db/endpoints/get_rental_applications.json +186 -0
  193. package/dist/catalog-db/endpoints/get_rental_applications_notes.json +71 -0
  194. package/dist/catalog-db/endpoints/get_showings.json +99 -0
  195. package/dist/catalog-db/endpoints/get_tenant_ledgers.json +82 -0
  196. package/dist/catalog-db/endpoints/get_tenants.json +273 -0
  197. package/dist/catalog-db/endpoints/get_tenants_notes.json +71 -0
  198. package/dist/catalog-db/endpoints/get_unit_types.json +168 -0
  199. package/dist/catalog-db/endpoints/get_units.json +359 -0
  200. package/dist/catalog-db/endpoints/get_units_attachments.json +76 -0
  201. package/dist/catalog-db/endpoints/get_units_notes.json +71 -0
  202. package/dist/catalog-db/endpoints/get_units_photos.json +70 -0
  203. package/dist/catalog-db/endpoints/get_users.json +88 -0
  204. package/dist/catalog-db/endpoints/get_vendors.json +317 -0
  205. package/dist/catalog-db/endpoints/get_vendors_notes.json +71 -0
  206. package/dist/catalog-db/endpoints/get_work_orders.json +322 -0
  207. package/dist/catalog-db/endpoints/get_work_orders_attachments.json +83 -0
  208. package/dist/catalog-db/endpoints/patch_bills_billid.json +156 -0
  209. package/dist/catalog-db/endpoints/patch_ca_violations_violationid.json +71 -0
  210. package/dist/catalog-db/endpoints/patch_inspections_inspectionid.json +77 -0
  211. package/dist/catalog-db/endpoints/patch_inventories_id.json +113 -0
  212. package/dist/catalog-db/endpoints/patch_inventory_locations_id.json +52 -0
  213. package/dist/catalog-db/endpoints/patch_journal_entries_journalentryid.json +90 -0
  214. package/dist/catalog-db/endpoints/patch_leads_guestcardid_notes_id.json +46 -0
  215. package/dist/catalog-db/endpoints/patch_leads_leadid.json +162 -0
  216. package/dist/catalog-db/endpoints/patch_leases_leaseid.json +52 -0
  217. package/dist/catalog-db/endpoints/patch_owner_groups_id.json +72 -0
  218. package/dist/catalog-db/endpoints/patch_owners_ownerid.json +344 -0
  219. package/dist/catalog-db/endpoints/patch_owners_ownerid_notes_id.json +46 -0
  220. package/dist/catalog-db/endpoints/patch_portfolios_portfolioid.json +46 -0
  221. package/dist/catalog-db/endpoints/patch_properties_propertyid.json +333 -0
  222. package/dist/catalog-db/endpoints/patch_properties_propertyid_marketing_photos_marketingphotoid.json +46 -0
  223. package/dist/catalog-db/endpoints/patch_properties_propertyid_notes_id.json +46 -0
  224. package/dist/catalog-db/endpoints/patch_properties_propertyid_photos_photoid.json +46 -0
  225. package/dist/catalog-db/endpoints/patch_property_groups_propertygroupid.json +40 -0
  226. package/dist/catalog-db/endpoints/patch_recurring_charges_recurringchargeid.json +89 -0
  227. package/dist/catalog-db/endpoints/patch_rental_applications_rentalapplicationid.json +47 -0
  228. package/dist/catalog-db/endpoints/patch_rental_applications_rentalapplicationid_notes_id.json +46 -0
  229. package/dist/catalog-db/endpoints/patch_showings_showingid.json +69 -0
  230. package/dist/catalog-db/endpoints/patch_tenants_bulk.json +131 -0
  231. package/dist/catalog-db/endpoints/patch_tenants_tenantid.json +48 -0
  232. package/dist/catalog-db/endpoints/patch_tenants_tenantid_notes_id.json +46 -0
  233. package/dist/catalog-db/endpoints/patch_unit_types_unittypeid.json +126 -0
  234. package/dist/catalog-db/endpoints/patch_units_unitid.json +296 -0
  235. package/dist/catalog-db/endpoints/patch_units_unitid_notes_id.json +46 -0
  236. package/dist/catalog-db/endpoints/patch_units_unitid_photos_photoid.json +46 -0
  237. package/dist/catalog-db/endpoints/patch_vendors_vendorid.json +263 -0
  238. package/dist/catalog-db/endpoints/patch_vendors_vendorid_notes_id.json +46 -0
  239. package/dist/catalog-db/endpoints/patch_work_orders_workorderid.json +273 -0
  240. package/dist/catalog-db/endpoints/patch_work_orders_workorderid_notes_id.json +46 -0
  241. package/dist/catalog-db/endpoints/post_bank_accounts_bulk.json +167 -0
  242. package/dist/catalog-db/endpoints/post_bills.json +160 -0
  243. package/dist/catalog-db/endpoints/post_bills_billid_attachments.json +40 -0
  244. package/dist/catalog-db/endpoints/post_bills_bulk.json +185 -0
  245. package/dist/catalog-db/endpoints/post_bills_bulk_async.json +192 -0
  246. package/dist/catalog-db/endpoints/post_ca_violations.json +63 -0
  247. package/dist/catalog-db/endpoints/post_ca_violations_violationid_attachments.json +41 -0
  248. package/dist/catalog-db/endpoints/post_charges.json +56 -0
  249. package/dist/catalog-db/endpoints/post_charges_bulk.json +70 -0
  250. package/dist/catalog-db/endpoints/post_charges_bulk_async.json +70 -0
  251. package/dist/catalog-db/endpoints/post_charges_chargeid_attachments.json +40 -0
  252. package/dist/catalog-db/endpoints/post_corporate_gl_accounts_bulk.json +71 -0
  253. package/dist/catalog-db/endpoints/post_gl_accounts_bulk.json +77 -0
  254. package/dist/catalog-db/endpoints/post_inspections.json +70 -0
  255. package/dist/catalog-db/endpoints/post_inspections_bulk.json +76 -0
  256. package/dist/catalog-db/endpoints/post_inspections_inspectionid_attachments.json +41 -0
  257. package/dist/catalog-db/endpoints/post_inventories.json +105 -0
  258. package/dist/catalog-db/endpoints/post_inventories_bulk.json +119 -0
  259. package/dist/catalog-db/endpoints/post_inventory_locations.json +44 -0
  260. package/dist/catalog-db/endpoints/post_inventory_locations_bulk.json +58 -0
  261. package/dist/catalog-db/endpoints/post_journal_entries.json +101 -0
  262. package/dist/catalog-db/endpoints/post_journal_entries_bulk.json +115 -0
  263. package/dist/catalog-db/endpoints/post_journal_entries_journalentryid_attachments.json +41 -0
  264. package/dist/catalog-db/endpoints/post_late_fee_policies_bulk.json +115 -0
  265. package/dist/catalog-db/endpoints/post_leads.json +204 -0
  266. package/dist/catalog-db/endpoints/post_leads_guestcardid_notes.json +40 -0
  267. package/dist/catalog-db/endpoints/post_occupancies_occupancyid_attachments.json +41 -0
  268. package/dist/catalog-db/endpoints/post_owner_groups.json +96 -0
  269. package/dist/catalog-db/endpoints/post_owners.json +330 -0
  270. package/dist/catalog-db/endpoints/post_owners_bulk.json +203 -0
  271. package/dist/catalog-db/endpoints/post_owners_ownerid_attachments.json +40 -0
  272. package/dist/catalog-db/endpoints/post_owners_ownerid_notes.json +40 -0
  273. package/dist/catalog-db/endpoints/post_properties_bulk.json +245 -0
  274. package/dist/catalog-db/endpoints/post_properties_propertyid_attachments.json +40 -0
  275. package/dist/catalog-db/endpoints/post_properties_propertyid_marketing_photos.json +52 -0
  276. package/dist/catalog-db/endpoints/post_properties_propertyid_notes.json +40 -0
  277. package/dist/catalog-db/endpoints/post_properties_propertyid_photos.json +40 -0
  278. package/dist/catalog-db/endpoints/post_recurring_charges.json +81 -0
  279. package/dist/catalog-db/endpoints/post_recurring_charges_bulk.json +95 -0
  280. package/dist/catalog-db/endpoints/post_rental_applications_rentalapplicationid_attachments.json +41 -0
  281. package/dist/catalog-db/endpoints/post_rental_applications_rentalapplicationid_notes.json +40 -0
  282. package/dist/catalog-db/endpoints/post_showings.json +62 -0
  283. package/dist/catalog-db/endpoints/post_tenants_bulk.json +161 -0
  284. package/dist/catalog-db/endpoints/post_tenants_tenantid_notes.json +40 -0
  285. package/dist/catalog-db/endpoints/post_unit_types_bulk.json +138 -0
  286. package/dist/catalog-db/endpoints/post_units_bulk.json +236 -0
  287. package/dist/catalog-db/endpoints/post_units_unitid_attachments.json +40 -0
  288. package/dist/catalog-db/endpoints/post_units_unitid_notes.json +40 -0
  289. package/dist/catalog-db/endpoints/post_units_unitid_photos.json +40 -0
  290. package/dist/catalog-db/endpoints/post_vendors.json +279 -0
  291. package/dist/catalog-db/endpoints/post_vendors_bulk.json +279 -0
  292. package/dist/catalog-db/endpoints/post_vendors_vendorid_notes.json +40 -0
  293. package/dist/catalog-db/endpoints/post_work_orders.json +251 -0
  294. package/dist/catalog-db/endpoints/post_work_orders_workorderid_attachments.json +41 -0
  295. package/dist/catalog-db/endpoints/post_work_orders_workorderid_notes.json +40 -0
  296. package/dist/catalog-db/endpoints/put_leases_renewal_pricings_bulk.json +58 -0
  297. package/dist/catalog-db/endpoints/put_units_pricing_matrices_bulk.json +58 -0
  298. package/dist/catalog-db/endpoints/put_units_pricing_matrices_bulk_async.json +46 -0
  299. package/dist/catalog-db/endpoints/put_units_unitid_pricing_matrices.json +66 -0
  300. package/dist/catalog-db/index.json +1894 -0
  301. package/dist/clients/appfolio-client.js +131 -0
  302. package/dist/clients/appfolio-db-client.js +186 -0
  303. package/dist/helpers/register-db-tools.js +27 -0
  304. package/dist/helpers/register-report-tools.js +27 -0
  305. package/dist/index.js +10 -0
  306. package/dist/server/appfolio-mcp-server.js +18 -0
  307. package/dist/tools/call-endpoint.js +109 -0
  308. package/dist/tools/describe-endpoint.js +63 -0
  309. package/dist/tools/describe-report.js +55 -0
  310. package/dist/tools/list-endpoints.js +90 -0
  311. package/dist/tools/list-reports.js +58 -0
  312. package/dist/tools/run-report.js +102 -0
  313. package/package.json +42 -0
@@ -0,0 +1,296 @@
1
+ {
2
+ "operationId": "patch_units_unitid",
3
+ "resource": "units",
4
+ "name": "Update Unit",
5
+ "method": "PATCH",
6
+ "path": "/units/{unitId}",
7
+ "description": "Update a unit",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "unitId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the unit to update"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Update unit object",
22
+ "attributes": [
23
+ {
24
+ "name": "Name",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "The unit name as displayed in the AppFolio Property Manager"
28
+ },
29
+ {
30
+ "name": "Bathrooms",
31
+ "type": "string <decimal>",
32
+ "required": false,
33
+ "description": "The number of desired bathrooms"
34
+ },
35
+ {
36
+ "name": "Bedrooms",
37
+ "type": "integer",
38
+ "required": false,
39
+ "description": "The number of desired bedrooms"
40
+ },
41
+ {
42
+ "name": "SquareFeet",
43
+ "type": "string",
44
+ "required": false,
45
+ "description": "The size of the unit in square feet"
46
+ },
47
+ {
48
+ "name": "Description",
49
+ "type": "string",
50
+ "required": false,
51
+ "description": "A brief, informative description of the unit"
52
+ },
53
+ {
54
+ "name": "ListedMarketRent",
55
+ "type": "string <decimal>",
56
+ "required": false,
57
+ "description": "The rent per month as listed on the market",
58
+ "deprecated": true
59
+ },
60
+ {
61
+ "name": "ListedRent",
62
+ "type": "string <decimal>",
63
+ "required": false,
64
+ "description": "The rent per month as listed on the market. This value reflects either the market rent or the advertised rent, depending on whether \"Use Market Rent On Ads\" is enabled in AppFolio Property Manager.",
65
+ "deprecated": true
66
+ },
67
+ {
68
+ "name": "MarketRent",
69
+ "type": "string <decimal>",
70
+ "required": false,
71
+ "description": "The unit's base market rent, representing its estimated fair market value based on current market conditions and comparable properties. It does not include advertised adjustments or amenity fees. This value directly updates the unit's market rent unless overridden by a configured unit type."
72
+ },
73
+ {
74
+ "name": "AdvertiseUsingListedMarketRent",
75
+ "type": "boolean",
76
+ "required": false,
77
+ "description": "Indicates whether or not to use the listed market rent as the advertised rent. Passing in null will result in no change."
78
+ },
79
+ {
80
+ "name": "CatsAllowed",
81
+ "type": "string",
82
+ "required": false,
83
+ "description": "The unit's cat policy. Enum: \"Yes\" \"No\" or null",
84
+ "enum": ["Yes", "No"]
85
+ },
86
+ {
87
+ "name": "DogsAllowed",
88
+ "type": "string",
89
+ "required": false,
90
+ "description": "The unit's dog policy. Enum: \"Large & Small\" \"Small Only\" \"No\" or null",
91
+ "enum": ["Large & Small", "Small Only", "No"]
92
+ },
93
+ {
94
+ "name": "CustomFields",
95
+ "type": "object",
96
+ "required": false,
97
+ "description": "The custom fields for the associated entity. Each key is a CustomFieldId and value is the new value to set. Set to null to clear; use empty array [] or empty string \"\" for array-type fields.",
98
+ "attributes": [
99
+ {
100
+ "name": "CustomFieldId",
101
+ "type": "object",
102
+ "required": false,
103
+ "description": "The value of the CustomField to update. Type must match the type configured for the CustomField at creation."
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "name": "Address1",
109
+ "type": "string",
110
+ "required": false,
111
+ "description": "The primary street address of the unit"
112
+ },
113
+ {
114
+ "name": "Address2",
115
+ "type": "string",
116
+ "required": false,
117
+ "description": "Additional street address information pertaining to the unit"
118
+ },
119
+ {
120
+ "name": "City",
121
+ "type": "string",
122
+ "required": false,
123
+ "description": "The city where the unit is located"
124
+ },
125
+ {
126
+ "name": "State",
127
+ "type": "string",
128
+ "required": false,
129
+ "description": "The state where the unit is located"
130
+ },
131
+ {
132
+ "name": "Zip",
133
+ "type": "string",
134
+ "required": false,
135
+ "description": "The zip code where the unit is located"
136
+ },
137
+ {
138
+ "name": "MaintenanceNotes",
139
+ "type": "string",
140
+ "required": false,
141
+ "description": "A brief informative message about the unit's maintenance"
142
+ },
143
+ {
144
+ "name": "MarketingTitle",
145
+ "type": "string",
146
+ "required": false,
147
+ "description": "The title of the listing for syndication"
148
+ },
149
+ {
150
+ "name": "MarketingDescription",
151
+ "type": "string",
152
+ "required": false,
153
+ "description": "A description of the listing for syndication"
154
+ },
155
+ {
156
+ "name": "NonRevenue",
157
+ "type": "boolean",
158
+ "required": false,
159
+ "description": "Indicates whether or not the unit is rentable and is a model unit, office or other non revenue unit"
160
+ },
161
+ {
162
+ "name": "Deposit",
163
+ "type": "number",
164
+ "required": false,
165
+ "description": "The security deposit amount"
166
+ },
167
+ {
168
+ "name": "ApplicationFee",
169
+ "type": "number",
170
+ "required": false,
171
+ "description": "The application fee amount"
172
+ },
173
+ {
174
+ "name": "RentReady",
175
+ "type": "boolean",
176
+ "required": false,
177
+ "description": "Indicates whether or not the unit is ready to be occupied by a tenant"
178
+ },
179
+ {
180
+ "name": "Tags",
181
+ "type": "Array of strings",
182
+ "required": false,
183
+ "description": "User-defined tag(s) that categorize the unit. Providing an array of valid strings will overwrite all existing tags. Passing in an empty array [] or an array of empty strings will clear all existing tags. Passing in null will result in no change."
184
+ },
185
+ {
186
+ "name": "LastInspectedDate",
187
+ "type": "string <date>",
188
+ "required": false,
189
+ "description": "The date the unit was last inspected"
190
+ },
191
+ {
192
+ "name": "YouTubeURL",
193
+ "type": "string <uri>",
194
+ "required": false,
195
+ "description": "The URL of the YouTube video for the listing(s)"
196
+ },
197
+ {
198
+ "name": "PostedToInternet",
199
+ "type": "boolean",
200
+ "required": false,
201
+ "description": "Sets whether to post the unit to third-party listings pages. Set to true to display and accept applications and false to remove the listing."
202
+ },
203
+ {
204
+ "name": "PostedToWebsite",
205
+ "type": "boolean",
206
+ "required": false,
207
+ "description": "Sets whether to post the unit to the AppFolio listings page. Set to true to display and accept applications and false to remove the listing."
208
+ },
209
+ {
210
+ "name": "AvailableOn",
211
+ "type": "string <date>",
212
+ "required": false,
213
+ "description": "The date upon which the unit can be leased. The date must be within three years of today's date"
214
+ },
215
+ {
216
+ "name": "ReadyForShowingOn",
217
+ "type": "string <date>",
218
+ "required": false,
219
+ "description": "The date upon which the unit is ready for showing"
220
+ },
221
+ {
222
+ "name": "UnitTypeId",
223
+ "type": "string <uuid>",
224
+ "required": false,
225
+ "description": "When present, the unit type can dictate fields like bedrooms, bathrooms, sq. feet, etc. Attempting to update a Unit with values that conflict with the Unit Type will cause an error."
226
+ },
227
+ {
228
+ "name": "HvacFilters",
229
+ "type": "array",
230
+ "required": false,
231
+ "description": "Array containing data about a unit's HVAC filters",
232
+ "attributes": [
233
+ {
234
+ "name": "Length",
235
+ "type": "number <float>",
236
+ "required": false,
237
+ "description": "The length of the HVAC filter"
238
+ },
239
+ {
240
+ "name": "Width",
241
+ "type": "number <float>",
242
+ "required": false,
243
+ "description": "The width of the HVAC filter"
244
+ },
245
+ {
246
+ "name": "Thickness",
247
+ "type": "number <float>",
248
+ "required": false,
249
+ "description": "The thickness of the HVAC filter"
250
+ },
251
+ {
252
+ "name": "Quantity",
253
+ "type": "integer",
254
+ "required": false,
255
+ "description": "The quantity of the HVAC filter"
256
+ },
257
+ {
258
+ "name": "Model",
259
+ "type": "string",
260
+ "required": false,
261
+ "description": "The model of the HVAC filter"
262
+ },
263
+ {
264
+ "name": "Brand",
265
+ "type": "string",
266
+ "required": false,
267
+ "description": "The brand of the HVAC filter"
268
+ }
269
+ ]
270
+ },
271
+ {
272
+ "name": "HvacDetail",
273
+ "type": "object",
274
+ "required": false,
275
+ "description": "The HVAC details of the unit",
276
+ "attributes": [
277
+ {
278
+ "name": "ConfirmedNoFiltersNeeded",
279
+ "type": "boolean",
280
+ "required": false,
281
+ "description": "Indicates whether or not the unit does not require HVAC filters"
282
+ }
283
+ ]
284
+ }
285
+ ]
286
+ },
287
+ "responseFields": [
288
+ {
289
+ "name": "Id",
290
+ "type": "string <uuid>",
291
+ "required": false,
292
+ "description": "Unique identifier of the updated unit"
293
+ }
294
+ ],
295
+ "requestSample": "{\n \"Name\": \"Unit A\",\n \"ApplicationFee\": 20.23,\n \"Bathrooms\": 2.5,\n \"Bedrooms\": 3,\n \"CatsAllowed\": \"Yes\",\n \"Deposit\": 300.34,\n \"Description\": \"Sample Description\",\n \"DogsAllowed\": \"Large & Small\",\n \"LastInspectedDate\": \"2021-02-15\",\n \"MarketRent\": 1569.05,\n \"MaintenanceNotes\": \"Sample notes\",\n \"MarketingTitle\": \"Beautiful Unit\",\n \"MarketingDescription\": \"Sample marketing description\",\n \"NonRevenue\": false,\n \"SquareFeet\": 2000,\n \"ReadyForShowingOn\": \"2021-02-15\",\n \"RentReady\": true,\n \"Tags\": [\"TagName\"],\n \"Address1\": \"123 Highland Avenue\",\n \"Address2\": \"unit c\",\n \"City\": \"Santa Barbara\",\n \"State\": \"CA\",\n \"Zip\": \"93117\",\n \"AdvertiseUsingListedMarketRent\": true,\n \"YouTubeURL\": \"https://www.youtube.com/watch?v=abc\",\n \"AvailableOn\": \"2021-02-15\",\n \"UnitTypeId\": \"7f3230dc-8b9a-11ec-9b4b-14482e0fbe8e\",\n \"HvacDetail\": {\"ConfirmedNoFiltersNeeded\": \"true\"},\n \"HvacFilters\": [{}],\n \"PostedToInternet\": true,\n \"PostedToWebsite\": true,\n \"CustomFields\": {\n \"a965e7d8-a17d-11ec-b909-0242ac120002\": \"a new value\",\n \"454d8635-521e-4864-99fb-0bd6200d3a0f\": true,\n \"c80d3dd1-9eba-45aa-803c-666280b8ff24\": 87.4,\n \"3277c366-1783-42a9-b925-0bca2afbe391\": \"0e9a7b18-1778-4a03-bc1c-f913aeaef6bc\"\n }\n}"
296
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "operationId": "patch_units_unitid_notes_id",
3
+ "resource": "units",
4
+ "name": "Update Unit Note",
5
+ "method": "PATCH",
6
+ "path": "/units/{UnitId}/notes/{Id}",
7
+ "description": "Update a note to a unit",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "UnitId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The unit to which the note will be attached"
17
+ },
18
+ {
19
+ "name": "Id",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the note to update"
23
+ }
24
+ ],
25
+ "requestBody": {
26
+ "required": true,
27
+ "description": "Note object",
28
+ "attributes": [
29
+ {
30
+ "name": "Body",
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "A brief informative message about the unit note. A unit note cannot exceed 65,535 characters."
34
+ }
35
+ ]
36
+ },
37
+ "responseFields": [
38
+ {
39
+ "name": "Id",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "Unique identifier of the updated unit note"
43
+ }
44
+ ],
45
+ "requestSample": "{\n \"Body\": \"This unit has a scheduled cleaning service on 11/30/2022 - Updated\"\n}"
46
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "operationId": "patch_units_unitid_photos_photoid",
3
+ "resource": "units",
4
+ "name": "Update Unit Photo",
5
+ "method": "PATCH",
6
+ "path": "/units/{UnitId}/photos/{PhotoId}",
7
+ "description": "Update a unit photo",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "UnitId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The unit to which the photo is attached. Note: Photos cannot be updated through this endpoint if the unit is using Unit Type photos."
17
+ },
18
+ {
19
+ "name": "PhotoId",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the photo to update"
23
+ }
24
+ ],
25
+ "requestBody": {
26
+ "required": true,
27
+ "description": "Photo object",
28
+ "attributes": [
29
+ {
30
+ "name": "Position",
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "The position of the photo in the unit photo gallery. The position must be a non-negative integer. If multiple photos are associated with a unit, the order of the remaining photos (positions 1 and above) will not change automatically if some photos are deleted. For example, if there are photos in positions 1, 2, 3, and 4, and photos 1 and 3 are deleted, the remaining photos will retain their original positions of 2 and 4"
34
+ }
35
+ ]
36
+ },
37
+ "responseFields": [
38
+ {
39
+ "name": "Id",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "Unique identifier of the updated unit photo"
43
+ }
44
+ ],
45
+ "requestSample": "{\n \"Position\": 1\n}"
46
+ }
@@ -0,0 +1,263 @@
1
+ {
2
+ "operationId": "patch_vendors_vendorid",
3
+ "resource": "vendors",
4
+ "name": "Update Vendor",
5
+ "method": "PATCH",
6
+ "path": "/vendors/{vendorId}",
7
+ "description": "Update a vendor.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "vendorId",
14
+ "type": "string",
15
+ "required": true,
16
+ "description": "Unique identifier of the vendor to update"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Vendor update object",
22
+ "attributes": [
23
+ {
24
+ "name": "TaxpayerName",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "The taxpayer name of the vendor. If UseCompanyNameAsTaxpayerName is true, then TaxpayerName will be CompanyName. If IsCompany is true, and TaxpayerName is not provided, then TaxpayerName will be set to CompanyName. If IsCompany is false, and TaxpayerName is not provided, then TaxpayerName will be set to the concatenation of FirstName and LastName. If TaxpayerName is provided, and UseCompanyNameAsTaxpayerName is false, then TaxpayerName will be set as provided value."
28
+ },
29
+ {
30
+ "name": "TaxpayerId",
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "The tax identification number of the vendor. This field accepts either a Employer Identification Number (EIN), a Social Security Number (SSN), or an Individual Taxpayer Identification Number (ITIN)."
34
+ },
35
+ {
36
+ "name": "CompanyName",
37
+ "type": "string",
38
+ "required": false,
39
+ "description": "The display name of the vendor's company"
40
+ },
41
+ {
42
+ "name": "Send1099",
43
+ "type": "boolean",
44
+ "required": false,
45
+ "description": "Indicates whether or not the vendor needs a 1099 tax form from the management company"
46
+ },
47
+ {
48
+ "name": "FirstName",
49
+ "type": "string",
50
+ "required": false,
51
+ "description": "The vendor's first name"
52
+ },
53
+ {
54
+ "name": "LastName",
55
+ "type": "string",
56
+ "required": false,
57
+ "description": "The vendor's last name"
58
+ },
59
+ {
60
+ "name": "Address1",
61
+ "type": "string",
62
+ "required": false,
63
+ "description": "The primary street address of the vendor. If provided, City, State, and Zip must also be provided."
64
+ },
65
+ {
66
+ "name": "Address2",
67
+ "type": "string",
68
+ "required": false,
69
+ "description": "Additional street address information pertaining to the vendor. If provided, Address1, City, State, and Zip must also be provided."
70
+ },
71
+ {
72
+ "name": "City",
73
+ "type": "string",
74
+ "required": false,
75
+ "description": "The city where the vendor is located. If provided, Address1, State, and Zip must also be provided."
76
+ },
77
+ {
78
+ "name": "State",
79
+ "type": "string",
80
+ "required": false,
81
+ "description": "The state where the vendor is located (e.g. \"CA\" for California). If provided, Address1, City, and Zip must also be provided. This value must not be an unincorporated US territory (AS, FM, MH, MP, or VI) for primary address when the vendor is using online payables with ACH."
82
+ },
83
+ {
84
+ "name": "Zip",
85
+ "type": "string",
86
+ "required": false,
87
+ "description": "The zip code where the vendor is located. Must be a string in 5-digit ZIP code format (e.g., 93013) or ZIP+4 format (e.g., 93013-0429). If provided, Address1, City, and State must also be provided."
88
+ },
89
+ {
90
+ "name": "CountryCode",
91
+ "type": "string",
92
+ "required": false,
93
+ "description": "The country code of the vendor (e.g. \"JP\" for Japan). If provided, Address1, City, State, and Zip must also be provided. This value must be US for primary address when the vendor is using online payables and ACH."
94
+ },
95
+ {
96
+ "name": "PhoneNumber",
97
+ "type": "string",
98
+ "required": false,
99
+ "description": "The vendor's primary phone number",
100
+ "deprecated": true
101
+ },
102
+ {
103
+ "name": "PhoneNumbers",
104
+ "type": "array",
105
+ "required": false,
106
+ "description": "The vendor's phone number(s). PhoneNumber and PhoneNumbers cannot be provided together. Passing any number of phone numbers will replace all existing phone numbers for the vendor.",
107
+ "attributes": [
108
+ {
109
+ "name": "Number",
110
+ "type": "string",
111
+ "required": true,
112
+ "description": "The vendor's phone number"
113
+ },
114
+ {
115
+ "name": "AdditionalDetails",
116
+ "type": "string",
117
+ "required": false,
118
+ "description": "Additional detailed information pertaining to the phone number associated with the vendor"
119
+ },
120
+ {
121
+ "name": "IsPrimary",
122
+ "type": "boolean",
123
+ "required": false,
124
+ "description": "Indicates whether the phone number provided is the vendor's main contact number"
125
+ },
126
+ {
127
+ "name": "Label",
128
+ "type": "string",
129
+ "required": false,
130
+ "description": "The label of the phone number, e.g. 'Home'",
131
+ "enum": ["Fax", "Home", "Mobile", "Office"]
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "name": "Email",
137
+ "type": "string",
138
+ "required": false,
139
+ "description": "The vendor's primary email address",
140
+ "deprecated": true
141
+ },
142
+ {
143
+ "name": "Emails",
144
+ "type": "array",
145
+ "required": false,
146
+ "description": "The vendor's email address(es). Email and Emails cannot be provided together. Passing any number of emails will replace all existing email addresses for the vendor.",
147
+ "attributes": [
148
+ {
149
+ "name": "EmailAddress",
150
+ "type": "string",
151
+ "required": true,
152
+ "description": "The vendor's email address"
153
+ },
154
+ {
155
+ "name": "IsPrimary",
156
+ "type": "boolean",
157
+ "required": false,
158
+ "description": "Indicates whether the email address provided is the vendor's primary email address"
159
+ }
160
+ ]
161
+ },
162
+ {
163
+ "name": "CompanyURL",
164
+ "type": "string",
165
+ "required": false,
166
+ "description": "The internet address of vendor's website"
167
+ },
168
+ {
169
+ "name": "LiabilityInsuranceExpiration",
170
+ "type": "string <date>",
171
+ "required": false,
172
+ "description": "The expiration date of the vendor's liability insurance. ISO 8601 format (YYYY-MM-DD) is required. Legacy MM/DD/YYYY format is supported for backward compatibility but will be deprecated in a future release."
173
+ },
174
+ {
175
+ "name": "AutoInsuranceExpiration",
176
+ "type": "string <date>",
177
+ "required": false,
178
+ "description": "The expiration date of the vendor's automobile insurance. ISO 8601 format (YYYY-MM-DD) is required. Legacy MM/DD/YYYY format is supported for backward compatibility but will be deprecated in a future release."
179
+ },
180
+ {
181
+ "name": "WorkersCompExpiration",
182
+ "type": "string <date>",
183
+ "required": false,
184
+ "description": "The expiration date of the vendor's worker's compensation insurance. ISO 8601 format (YYYY-MM-DD) is required. Legacy MM/DD/YYYY format is supported for backward compatibility but will be deprecated in a future release."
185
+ },
186
+ {
187
+ "name": "ContractExpiration",
188
+ "type": "string <date>",
189
+ "required": false,
190
+ "description": "The expiration date of the contract. ISO 8601 format (YYYY-MM-DD) is required. Legacy MM/DD/YYYY format is supported for backward compatibility but will be deprecated in a future release."
191
+ },
192
+ {
193
+ "name": "UmbrellaInsuranceExpiration",
194
+ "type": "string <date>",
195
+ "required": false,
196
+ "description": "The expiration date of the vendor's umbrella insurance. ISO 8601 format (YYYY-MM-DD) is required. Legacy MM/DD/YYYY format is supported for backward compatibility but will be deprecated in a future release."
197
+ },
198
+ {
199
+ "name": "CompliantStatus",
200
+ "type": "boolean",
201
+ "required": false,
202
+ "description": "Indicates whether or not the vendor meets compliance"
203
+ },
204
+ {
205
+ "name": "NetVendorId",
206
+ "type": "string",
207
+ "required": false,
208
+ "description": "The vendor's NetVendor ID"
209
+ },
210
+ {
211
+ "name": "IsCompany",
212
+ "type": "boolean",
213
+ "required": false,
214
+ "description": "Indicates whether or not the vendor identifies as a company"
215
+ },
216
+ {
217
+ "name": "UseCompanyNameAsTaxpayerName",
218
+ "type": "boolean",
219
+ "required": false,
220
+ "description": "Indicates whether or not to use the company name for tax paying purposes"
221
+ },
222
+ {
223
+ "name": "DefaultAutoAcceptWorkOrders",
224
+ "type": "boolean",
225
+ "required": false,
226
+ "description": "Indicates whether the vendor is ineligible for auto-accept work order assignments. When set to true, this vendor will auto-accept all work orders assigned to them."
227
+ },
228
+ {
229
+ "name": "PaymentTerms",
230
+ "type": "integer",
231
+ "required": false,
232
+ "description": "Represents the number of days the payment is due after the invoice date. A null value indicates that no payment terms were defined. A value of 0 indicates the payment is due on receipt. A value greater than 0, for example, 15, indicates the payment is due 15 days after the invoice date. Required if UsingEomTerms is true."
233
+ },
234
+ {
235
+ "name": "UsingEomTerms",
236
+ "type": "boolean",
237
+ "required": false,
238
+ "description": "Indicates whether or not the payment terms include an end-of-month (EOM) stipulation. For example, if PaymentTerms is 15, and EOM is true, the payment is due within 15 days of the end of the month."
239
+ },
240
+ {
241
+ "name": "Tags",
242
+ "type": "Array of strings",
243
+ "required": false,
244
+ "description": "User-defined tag(s) that categorize the vendor. Providing an array of valid strings will overwrite all existing tags. Passing in an empty array [] or an array of empty strings will clear all existing tags. Passing in null will result in no change."
245
+ },
246
+ {
247
+ "name": "CustomFields",
248
+ "type": "object",
249
+ "required": false,
250
+ "description": "The custom fields for the associated entity. The value of the CustomField to update keyed by CustomFieldId. To clear the value of a CustomField, set CustomFieldId to null. For array-type custom fields (select_multiple), use an empty array [] or empty string instead of null."
251
+ }
252
+ ]
253
+ },
254
+ "responseFields": [
255
+ {
256
+ "name": "Id",
257
+ "type": "string <uuid>",
258
+ "required": false,
259
+ "description": "Unique identifier of the updated vendor"
260
+ }
261
+ ],
262
+ "requestSample": "{\n \"TaxpayerName\": \"John Doe\",\n \"TaxpayerId\": \"55-2345678\",\n \"CompanyName\": \"Fake Company\",\n \"IsCompany\": true,\n \"UseCompanyNameAsTaxpayerName\": false,\n \"Send1099\": true,\n \"FirstName\": \"John\",\n \"LastName\": \"Doe\",\n \"Address1\": \"25 Example Way\",\n \"Address2\": \"34 Example Way\",\n \"City\": \"Los Angeles\",\n \"State\": \"CA\",\n \"Zip\": \"92114\",\n \"PhoneNumbers\": [{}],\n \"Emails\": [{}],\n \"CompanyURL\": \"https://example.com\",\n \"LiabilityInsuranceExpiration\": \"01-23-2022\",\n \"AutoInsuranceExpiration\": \"02-23-2022\",\n \"WorkersCompExpiration\": \"03-23-2022\",\n \"ContractExpiration\": \"04-23-2022\",\n \"UmbrellaInsuranceExpiration\": \"05-23-2022\",\n \"CompliantStatus\": true,\n \"NetVendorId\": \"1\",\n \"DefaultAutoAcceptWorkOrders\": true,\n \"PaymentTerms\": 30,\n \"UsingEomTerms\": true,\n \"Tags\": [\"tag1\", \"tag2\"],\n \"CustomFields\": {\n \"a965e7d8-a17d-11ec-b909-0242ac120002\": \"a new value\",\n \"454d8635-521e-4864-99fb-0bd6200d3a0f\": true,\n \"c80d3dd1-9eba-45aa-803c-666280b8ff24\": 87.4,\n \"3277c366-1783-42a9-b925-0bca2afbe391\": \"0e9a7b18-1778-4a03-bc1c-f913aeaef6bc\",\n \"4f83a1bf-4e49-4463-8113-15c52f79243a\": []\n }\n}"
263
+ }