Основные запросы
Сделки, клиенты, автомобили, товары: найти, посмотреть, создать, сменить статус, принять оплату.
Все запросы — к адресу вашей CRM с заголовком Authorization: Bearer bst_…. Данные отправляются и приходят в JSON. Даты — в UTC в формате ISO 8601. Списки поддерживают limit (до 100 за раз) и offset для постраничной загрузки; в ответе есть total — сколько записей всего.
Справочники
GET /meta/reference— точки (branches), воронки (pipelines), статусы сделок (statuses), сотрудники (users), кассы и счета (money_accounts).
Сделки
GET /api/orders— список. Фильтры:search(номер, клиент, телефон, госномер),status,branch_id,pipeline_id,client_id,car_id,payment_status(none— не оплачена,partial— частично,full— полностью,prepayment,debt,overpaid),date_from,date_to(ГГГГ-ММ-ДД).GET /api/orders/{id}— карточка: клиент, машина, работы с мастерами, запчасти, оплаты, долг.POST /api/orders— создать сделку *(нужен ключ «Чтение и изменение»)*.POST /api/orders/{id}/status— сменить статус.POST /api/orders/{id}/payments— записать оплату.
Создать сделку для клиента из онлайн-записи:
curl -X POST https://ваша-компания.bstcrm.ru/api/orders \
-H "Authorization: Bearer bst_ваш_ключ" -H "Content-Type: application/json" \
-d '{"branch_id": 1, "client_id": 75, "visit_reason": "Запись с сайта: плановое ТО"}'Ответ: {"id": 214} — номер новой сделки. Необязательные поля: car_id, pipeline_id, mileage, plate, responsible_id (ответственный менеджер).
Сменить статус (номер статуса — из /meta/reference, той же воронки, что и сделка):
curl -X POST https://ваша-компания.bstcrm.ru/api/orders/214/status \
-H "Authorization: Bearer bst_ваш_ключ" -H "Content-Type: application/json" \
-d '{"status_id": 2, "comment": "Клиент подтвердил запись"}'Записать оплату (account_id — касса или счёт из money_accounts; payment_method — cash наличные (только в кассу наличных), terminal терминал, transfer перевод; request_id — любой UUID, чтобы повторная отправка того же запроса не записала оплату дважды):
curl -X POST https://ваша-компания.bstcrm.ru/api/orders/214/payments \
-H "Authorization: Bearer bst_ваш_ключ" -H "Content-Type: application/json" \
-d '{"account_id": 2, "amount": 4500, "payment_method": "terminal", "request_id": "6f1c2e8a-4b8e-4c1d-9a51-1f7d6d3c2b10"}'Клиенты
GET /api/clients?search=Орлова— поиск по имени, телефону, e-mail. В ответе — число машин, сделок и долг клиента.GET /api/clients/{id}— карточка клиента;GET /api/clients/{id}/orders— его сделки;GET /api/clients/{id}/cars— его машины.POST /api/clients— новый клиент:
{"full_name": "Иван Тестовый", "phone": "+79001234567", "email": "", "source": "Сайт", "comment": "Записался онлайн"}Ответ: {"id": 75}. Если клиент с таким телефоном уже есть, CRM вернёт ошибку — сначала ищите по телефону.
Автомобили
GET /api/cars?q=Polo— поиск по марке, модели, госномеру, VIN.GET /api/cars/{id},GET /api/cars/{id}/orders— машина и история её обслуживания.POST /api/cars— добавить машину клиенту (client_id,brand,model,plate,vin,year,mileage).
Товары и остатки
GET /api/products?search=фильтр— товары с остатками: всего, в резерве, доступно, по каждому складу (warehouse_availability), закупочная и продажная цена.GET /api/products/{id}— карточка товара.
Пример ответа на поиск товара (сокращённо):
{
"items": [{
"id": 3, "sku": "FIL-AIR", "brand": "MANN", "name": "Воздушный фильтр",
"qty": 6.0, "reserved_qty": 0.0, "available_qty": 6.0, "sale_price": 1015.0,
"warehouse_availability": [{"warehouse_id": 1, "warehouse_name": "Акорус", "available_qty": 6.0}]
}],
"total": 2
}