Contract intake forms can now set buyer and seller representatives, including the same agent for both sides, attach people and companies with roles, and add notes directly to a contract.
Integrations can read those notes back on GET /api/partner/notes and GET /api/partner/notes/{id}. Team-scoped tokens list every team note; user-scoped tokens only list notes on people, companies, and contracts the token can access.
Participants, roles, companies, and representatives are returned on the contract so integrations can verify their work. Existing contact ID lists remain supported.
Replacing or clearing a representative removes their participant entry when they have no other role on the contract. Dual agency, explicit roles, and primary contacts are preserved. The Contacts tab now identifies team users correctly instead of labeling them as companies.