Сделки
CRM-слой AISAR: сделки, привязанные к воронкам и стадиям, задачи по сделкам (звонки, встречи, follow-up), справочники типов сделок и причин отказа. Владение сделкой/задачей всегда проверяется по company_id — обращение к чужой записи возвращает 404, а не 403. Все эндпоинты требуют активную подписку и фичу плана deals.
Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /v1/dealsСписок сделок (фильтры: funnel_id, status, contact_id, responsible_user_id) | Список сделок (фильтры: funnel_id, status, contact_id, responsible_user_id) |
| POST | /v1/dealsСоздание сделки | Создание сделки |
| GET | /v1/deals/{deal}Получение сделки | Получение сделки |
| POST | /v1/deals/{deal}Обновление сделки | Обновление сделки |
| DELETE | /v1/deals/{deal}Удаление сделки (soft delete) | Удаление сделки (soft delete) |
| POST | /v1/deals/{deal}/restoreВосстановление мягко удалённой сделки | Восстановление мягко удалённой сделки |
| GET | /v1/deals/{deal}/activitiesЛента активности сделки (таймлайн) | Лента активности сделки (таймлайн) |
| POST | /v1/deals/{deal}/notesДобавить заметку в таймлайн сделки | Добавить заметку в таймлайн сделки |
| GET | /v1/deals/{deal}/tasksЗадачи, привязанные к сделке | Задачи, привязанные к сделке |
| GET | /v1/deal-tasksСписок задач компании (фильтры: status, assigned_user_id, deal_id, overdue, mine) | Список задач компании (фильтры: status, assigned_user_id, deal_id, overdue, mine) |
| POST | /v1/deal-tasksСоздание задачи | Создание задачи |
| PATCH | /v1/deal-tasks/{task}Обновление/закрытие задачи | Обновление/закрытие задачи |
| DELETE | /v1/deal-tasks/{task}Удаление задачи | Удаление задачи |
| GET | /v1/deal-typesСписок типов сделок | Список типов сделок |
| POST | /v1/deal-typesСоздание типа сделки | Создание типа сделки |
| PATCH | /v1/deal-types/{dealType}Обновление типа сделки | Обновление типа сделки |
| DELETE | /v1/deal-types/{dealType}Удаление типа сделки | Удаление типа сделки |
| GET | /v1/lost-reasonsСписок причин отказа | Список причин отказа |
| POST | /v1/lost-reasonsСоздание причины отказа | Создание причины отказа |
| PATCH | /v1/lost-reasons/{lostReason}Обновление причины отказа | Обновление причины отказа |
| DELETE | /v1/lost-reasons/{lostReason}Удаление причины отказа | Удаление причины отказа |
Примеры
Создание сделки
Запрос
curl -X POST https://api.aisar.app/v1/deals \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"contact_id": 123,
"funnel_id": 1,
"funnel_stage_id": 3,
"title": "Office renovation",
"amount": "5000.00",
"currency": "KZT",
"source": "api",
"responsible_user_id": 5
}'Ответ
{
"data": {
"id": 501,
"company_id": 1,
"contact_id": 123,
"funnel_id": 1,
"funnel_stage_id": 3,
"title": "Office renovation",
"amount": "5000.00",
"currency": "KZT",
"status": "open",
"type_id": null,
"source": "api",
"utm_source": null,
"utm_medium": null,
"utm_campaign": null,
"probability": null,
"comments": null,
"begin_date": null,
"responsible_user_id": 5,
"expected_close_date": null,
"closed_at": null,
"lost_reason": null,
"lost_reason_id": null,
"closed_amount": null,
"closed_currency": null,
"stage_changed_at": "2026-03-15T10:00:00.000000Z",
"channel": null,
"custom_fields": null,
"created_at": "2026-03-15T10:00:00.000000Z",
"updated_at": "2026-03-15T10:00:00.000000Z"
}
}Перевод сделки в статус lost
Запрос
curl -X POST https://api.aisar.app/v1/deals/501 \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "lost",
"lost_reason_id": 3
}'Ответ
{
"data": {
"id": 501,
"status": "lost",
"lost_reason_id": 3,
"lost_reason": null,
"closed_amount": "5000.00",
"closed_currency": "KZT",
"closed_at": "2026-03-17T09:00:00.000000Z",
"stage_changed_at": "2026-03-17T09:00:00.000000Z",
"updated_at": "2026-03-17T09:00:00.000000Z"
}
}