Dissociating an account from a contact in Zoho Desk can be done via the REST API using a targeted DELETE request — either for a single account or all accounts linked to a contact at once.
Why this matters
In Zoho Desk, contacts can be associated with one or more accounts, which helps track support tickets by company or department. [8] There are times when a contact changes employer, acts as a consultant across multiple businesses, or was simply linked to the wrong account — and you need to cleanly remove that relationship without deleting either record. [8] Knowing the correct API endpoints saves time and avoids accidental data loss.
> Beam Help is an independent expert support resource for Zoho — not official Zoho support.
---
Step-by-step
Step 1. Identify the two IDs you need before making any API call: the contactid of the contact whose account link you want to remove, and the accountid of the specific account you want to dissociate. Both are available from the Zoho Desk UI or via a prior GET request against the contacts or accounts endpoints. [1]
Step 2. To remove a single account from a contact, send a DELETE request to the following endpoint, substituting the real IDs for the placeholders: [1]
DELETE /api/v1/contacts/{contact_id}/accounts/{account_id}
A minimal Python call using the Zoho Desk client wrapper looks like this: [1]
client.delete_dissociate_account_from_contact(
contact_id="your_contact_id",
account_id="your_account_id"
)
A successful response confirms the relationship has been removed; neither the contact record nor the account record is deleted. [1]
Step 3. If you need to remove all accounts linked to a particular contact in a single operation, use the bulk dissociation endpoint instead: [2]
DELETE /api/v1/contacts/{contact_id}/accounts
In Python this is: [2]
client.delete_dissociate_accounts_from_contact(
contact_id="your_contact_id"
)
This clears every account association for that contact without touching the underlying account or contact records. [2]
Step 4. If you later need to re-link an account to the same contact, use the association endpoint with a POST request: [4]
POST /api/v1/contacts/{contact_id}/accounts
Pass the account details in the request body (data parameter). [4] This is the reverse operation and is useful when correcting a mistaken dissociation.
Step 5. Avoid confusing the dissociation endpoints with the account-deletion endpoint (DELETE /api/v1/accounts), which permanently removes account records from your helpdesk entirely. [5] Dissociation only severs the relationship — it does not delete either record.
---
Common pitfalls
- Wrong endpoint scope: Using
DELETE /api/v1/accountsinstead of the contact-scoped path will permanently delete the account rather than just unlinking it. [5] Always double-check that your DELETE path includes/contacts/{contact_id}/before the/accountssegment. - Missing or swapped IDs: The single-account endpoint requires both
contactidandaccountidin the path. Swapping them or omitting one will result in a routing error. [1] - Bulk vs. targeted removal: The endpoint
DELETE /api/v1/contacts/{contactid}/accounts(no trailing account ID) removes *all* account associations for that contact. [2] If you only intend to remove one, always include the specificaccountidin the path. [1] - SLA associations are separate: Dissociating an account from a contact does not affect any SLA linked to the account itself. SLA associations are managed through a different endpoint (
POST /api/v1/accounts/{account_id}/slas) and must be handled independently if needed. [3]
---
What to check
- Confirm the relationship is removed by retrieving the contact record after the DELETE call and verifying the account no longer appears in its associated accounts list. [1]
- Verify no tickets were orphaned — tickets previously submitted under that contact–account pairing may retain the old account reference; review open tickets for the contact after dissociation. [8]
- Ensure you used the correct endpoint variant (single-account vs. all-accounts) by checking whether the
account_idsegment was included in your request path. [^1,2]