Clients API
POST/api/v1/clients/{id}/merge
Product availabilityAlgaPSAAlgaDesk

Merge a client into this one

Absorbs source_client_id into this client as a billing profile. The source's billing profiles are re-parented keeping their ids, so invoices, billing cycles, payment methods, credits and tax settings follow them; tickets, contacts, projects, assets, contracts, locations and portal visibility groups move to this client. The source client is archived with a forwarding marker. Irreversible. Requires client update and delete.

RBAC · client

Path parameters

idstring <uuid>Required

Request body

Content type: application/json · schema ClientMergeBody

source_client_idstring <uuid>Required
contact_assignmentsarray of object
itemsobject
contact_name_idstring <uuid>Required
billing_profile_idstring <uuid>Required
is_managerboolean
can_view_profile_ticketsboolean
contract_decisionsarray of object
itemsobject
client_contract_idstring <uuid>Required
choicestringRequired
Enum: originalcutover
cutover_datestringNullable
pin_portal_grantsboolean
Defaults to true: records the billing segments unrestricted portal users have today.
external_remap_choicesarray of object
itemsobject
mapping_idstringRequired
applybooleanRequired

Response body

Success response 200 · schema ClientMergeEnvelope

dataobjectRequired
merge_idstring <uuid>Required
source_client_idstring <uuid>Required
target_client_idstring <uuid>Required
moved_profile_idsarray of stringRequired
itemsstring <uuid>
moved_default_profile_idstring <uuid>RequiredNullable
countsobjectRequired
remapped_external_mapping_idsarray of stringRequired
itemsstring
skipped_external_mapping_idsarray of stringRequired
itemsstring
metaobject

Response codes

200
Merge completed.
400
Invalid payload, or the merge was refused (blockers are returned as validation details).
401
API key missing/invalid or key user not found.
403
Permission denied for client update or delete.
404
Client not found.
500
Unexpected merge failure.