---
title: "Объединить контрагентов"
method: POST
path: "/api/v1/core/contacts/{id}/merge"
tags: ["Core contacts"]
---

# Объединить контрагентов

`POST /api/v1/core/contacts/{id}/merge`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/core/contacts/{id}/merge`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)
  - HTTP bearer

Переносит на target_id всё, что держит карточку {id}, одной транзакцией: документы перепроводятся, таблицы модулей переписывают их владельцы, итоги регистров сверяются (у цели — сумма двух, у источника — ноль), привязка к сотруднику переезжает, источник уходит в архив. Не сходится или есть держатели без переноса, документы в закрытом периоде — отказ с перечнем, ничего не меняется.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant` string, required

## Request body

- CoreContactMergeInput
  - `target_id` string, uuid, required

## Response `200`

Что сделано

- CoreContactMergeResult
  - `preview` boolean: Только предпросмотр
  - `source_id` string: Карточка-источник
  - `source_name` string: Имя источника
  - `target_id` string: Целевая карточка
  - `target_name` string: Имя цели
  - `documents` CoreContactMergeDocument[]: Документы со ссылкой на источник
    - `id` string: Документ
    - `number` string: Номер
    - `type_key` string: Вид документа
    - `date` string: Дата
    - `status` string: Статус
  - `holders` CoreContactMergeHolder[]: Таблицы со ссылкой на источник
    - `table` string: Таблица
    - `column` string: Колонка
    - `rows` integer: Строк с карточкой-источником
  - `totals` CoreContactMergeTotal[]: Итоги регистров до и после
    - `register` string: Регистр
    - `value` string: Значение регистра
    - `before` string: Сумма по обеим карточкам до
    - `after` string: Итог у цели после
  - `employee_moved` boolean: Привязка к сотруднику перенесена. Переносится только на физлицо; при объединении в ИП или организацию остаётся у архивной карточки
  - `archived` boolean: Источник в архиве

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю
- `409`: Объединить нельзя — причина и перечень

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
