Сценарий из mcp-everything. Актуально на 2026-10-24.
Заказ из CRM или чат-бота: менеджер оформляет покупку, клиент получает ссылку на оплату GetCourse.
import base64, json, requests
def gc_import(entity, params):
payload = base64.b64encode(json.dumps(params, ensure_ascii=False).encode()).decode()
return requests.post(f"https://myschool.getcourse.ru/pl/api/{entity}",
data={"action": "add", "key": "<секретный ключ>", "params": payload}).json()
r = gc_import("deals", {
"user": {"email": "client@example.ru", "first_name": "Олег"},
"deal": {"offer_code": "python-start", "deal_cost": 14900, "deal_status": "new",
"manager_email": "sales@myschool.ru"},
"system": {"return_payment_link": 1, "return_deal_number": 1},
})
print(r["result"].get("payment_link"), r["result"].get("deal_number"))
# Позже, когда оплата подтверждена:
gc_import("deals", {"user": {"email": "client@example.ru"},
"deal": {"deal_number": r["result"]["deal_number"], "deal_status": "payed"}})
https://{account}.getcourse.ru/pl/apiТип: API-ключ
Отдельной авторизации нет: секретный ключ аккаунта передаётся в каждом запросе — в импорте POST-параметром key, в экспорте параметром key в строке запроса. Ключ создаётся в аккаунте («Профиль» → «Настройки аккаунта» → «АПИ»); для импорта нужен ключ с правом записи.
Создаёт заказ или обновляет существующий по deal_number; смена статуса — action=add с user.email, deal.deal_number и deal.deal_status. Минимум для создания: код или название предложения, сумма и email (либо offer_id и email).
В ответе: success, action, result (deal_id, deal_number, user_id, user_status, payment_link, error_message, error).
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
action |
body | string | да | add |
key |
body | string | да | Секретный ключ |
params |
body | string | да | JSON в base64 |
params.user.email |
body | string | да | Email покупателя |
params.deal.deal_number |
body | string | нет | Номер заказа (для обновления) |
params.deal.offer_code |
body | string | нет | Код предложения |
params.deal.offer_id |
body | string | нет | ID предложения |
params.deal.product_title |
body | string | нет | Название предложения |
params.deal.deal_cost |
body | string | нет | Сумма заказа |
params.deal.deal_status |
body | string | нет | Статус: new, payed, cancelled и др. |
params.deal.deal_is_paid |
body | integer | нет | Признак оплаты |
params.deal.payment_type |
body | string | нет | Способ оплаты |
params.deal.payment_status |
body | string | нет | Статус платежа |
params.deal.manager_email |
body | string | нет | Email менеджера |
params.deal.deal_comment |
body | string | нет | Комментарий |
params.system.multiple_offers |
body | integer | нет | 1 — несколько предложений в одном заказе (добавляются по одному) |
params.system.return_payment_link |
body | integer | нет | Вернуть ссылку на оплату |
params.system.return_deal_number |
body | integer | нет | Вернуть номер заказа |
action, key, params; в base64 кодируется только params. Без POST/form-data будет ошибка «Пустой параметр action».export_id → получение данных; экспорты выполняются последовательно, не параллельте их./account/fields с action=get.yyyy-mm-dd HH:MM:II.Если этого недостаточно — официальная документация: https://getcourse.ru/help/api Вся интеграция одним документом: https://mcp-everything.ru/integrations/getcourse.md