# Мегаплан API v3: POST /api/v3/deal — Создать сделку

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `contentType` | body | string | да | Deal |
| `program` | body | object | да | Схема сделки: {"contentType": "Program", "id": ...} |
| `manager` | body | object | нет | Менеджер: {"contentType": "Employee", "id": ...} |
| `contractor` | body | object | нет | Клиент: {"contentType": "ContractorCompany", "id": ...} |
| `description` | body | string | нет | Описание |

Пример запроса:

```
{
    "contentType": "Deal",
    "program": {
        "contentType": "Program",
        "id": 8
    },
    "manager": {
        "contentType": "Employee",
        "id": 1000003
    },
    "contractor": {
        "contentType": "ContractorCompany",
        "id": 1000666
    },
    "description": "Описание"
}
```

## Базовые URL

- Боевой: `https://<ваш-аккаунт>.megaplan.ru/api/v3/`
- Тестовый (демо-аккаунт): `https://demo.megaplan.ru/api/v3/`

## Авторизация

Тип: Bearer-токен

Токен передаётся в каждом запросе в заголовке `AUTHORIZATION: Bearer <token>`. Для авторизации по логину и паролю токен получают запросом `POST /api/v3/auth/access_token` с `grant_type=password`; он живёт 48 часов (`expires_in` 172800). Приложения Мегаплана получают токен в `data->token` событий приложения.

```
curl --request POST \
    --url https://demo.megaplan.ru/api/v3/auth/access_token \
    --header 'content-type: multipart/form-data;' \
    --form username=dev-null@megoplan.ru \
    --form password=123 \
    --form grant_type=password
```

## Нюансы

- Ответ всегда в конверте `meta` + `data`: в `meta` — `status`, ошибки и `pagination` (`count`, `limit`).
- Параметры GET-запросов передаются JSON-объектом прямо в строке запроса, например `GET /api/v3/currency?{"limit": "3"}`.
- Пагинация курсорная: `pageAfter`/`pageBefore` принимают ссылочную сущность (`contentType` + `id`), а не номер страницы.
- Коллекции отдают только базовые поля; для полного набора запросите карточку по `id` или передайте `fields`.
- Изменение сущности — `POST` на её адрес (`/api/v3/task/{id}`), а не PUT или PATCH.
- Пользовательские поля имеют имена вида `Category130CustomField...`; для фильтра по расширенным полям сделок нужно указать схему `program`.
- Полный список сущностей и эндпоинтов публикуется на каждом аккаунте: `/api/v3/docs`; RAML-описание — `/api/v3`.
- Пример ответа:

## Сценарии с этим методом

- [Создать клиента и сделку](https://mcp-everything.ru/integrations/megaplan/scenarios/sozdat-klienta-i-sdelku.md)

---

Если этого недостаточно — официальная документация: https://dev.megaplan.ru/apiv3/index.html
Вся интеграция одним документом: https://mcp-everything.ru/integrations/megaplan.md
