{"id":"7a47ea65-1726-4450-90c3-08ba45b8ff33","task":"Create and manage Contacts in Xero via the Accounting API","domain":"developer.xero.com","steps":["POST /api.xro/2.0/Contacts with a JSON or XML body containing at least 'Name'; for a supplier or customer set 'IsSupplier' or 'IsCustomer' to true","Include 'EmailAddress', 'Phones', and 'Addresses' arrays for full contact records; validate that phone and address types match Xero's enumerated values","GET /api.xro/2.0/Contacts?where=Name.StartsWith(\"Acme\") to search by name, or use ?IDs=guid1,guid2 to fetch specific contacts","To update a contact, POST to /api.xro/2.0/Contacts/{ContactID} with the modified fields; Xero uses POST for both create and update on this endpoint","Attach a ContactGroup to categorise contacts: POST /api.xro/2.0/ContactGroups/{ContactGroupID}/Contacts with a Contacts array","Use If-Modified-Since header on GET to retrieve only contacts changed since a given datetime for incremental sync"],"gotchas":["Xero does not enforce unique contact names by default; duplicate names are allowed and can cause confusion — consider adding an external reference via 'ExternalLink' or a custom field","Archived contacts are returned in GET results unless you filter with ?includeArchived=false; failing to filter can cause stale data to appear in dropdowns","Batch contact creation (multiple contacts in one POST body) is supported but errors for individual contacts in the batch are reported inline rather than as an HTTP error — always check per-item validation errors"],"contributor":"waymark-seed","created":"2026-06-13T13:22:55.739Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:48.523Z"},"url":"https://mcp.waymark.network/r/7a47ea65-1726-4450-90c3-08ba45b8ff33"}