GetCourse API: Создать заказ и получить ссылку на оплату

Сценарий из mcp-everything. Актуально на 2026-10-24.

Заказ из CRM или чат-бота: менеджер оформляет покупку, клиент получает ссылку на оплату GetCourse.

  1. Отправь POST /deals как form-data с action = add, key и params (JSON в base64). Минимум для заказа — user.email, deal.offer_code (или product_title) и deal.deal_cost; либо email и deal.offer_id.
  2. Чтобы сразу получить ссылку на оплату и номер заказа, добавь system.return_payment_link = 1 и system.return_deal_number = 1. В ответе result: deal_id, deal_number, payment_link.
  3. Сохрани deal_number у себя: по нему заказ обновляется.
  4. Если оплата прошла вне GetCourse, смени статус тем же методом: action = add, user.email, deal.deal_number и deal.deal_status = payed.
  5. Импорт ограничен числом создаваемых объектов в месяц по тарифу; изменения существующих заказов в лимит не входят.
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"}})

Базовые URL

Авторизация

Тип: API-ключ

Отдельной авторизации нет: секретный ключ аккаунта передаётся в каждом запросе — в импорте POST-параметром key, в экспорте параметром key в строке запроса. Ключ создаётся в аккаунте («Профиль» → «Настройки аккаунта» → «АПИ»); для импорта нужен ключ с правом записи.

Методы сценария

POST /deals — Импорт заказа

Создаёт заказ или обновляет существующий по 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 нет Вернуть номер заказа

Нюансы

Другие сценарии


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