Sendsay API: Отправить транзакционное письмо

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

Письмо одному получателю по событию: заказ оформлен, оплата получена.

  1. Вызови action = issue.send с group = personal, sendwhen = now и email получателя.
  2. В letter передай subject, from.email (и from.name) и message.html. Значения для подстановки в шаблон — в extra.
  3. В ответе — letter: по нему письмо находится в статистике.
  4. Лимит — 80 запросов в секунду и не больше 5 одновременных запросов на изменение данных; при превышении — 503 rate_limit.
curl -L -X POST "https://api.sendsay.ru/general/api/v100/json/<аккаунт>" \
  -H 'Content-Type: application/json' \
  -d '{
        "action": "issue.send",
        "apikey": "<API-ключ>",
        "sendwhen": "now",
        "group": "personal",
        "email": "ivan@example.ru",
        "letter": {
          "subject": "Заказ №1042 оформлен",
          "from": {"name": "Магазин", "email": "noreply@example.ru"},
          "message": {"html": "<p>Спасибо за заказ! Мы сообщим, когда он будет отправлен.</p>"}
        }
      }'

Базовые URL

Авторизация

Тип: API-ключ

Рекомендуемый способ — API-ключ (создаётся вызовом sys.user.apikey.create, лучше на отдельный саблогин с минимальными правами). Ключ передаётся полем apikey в теле JSON или заголовком Authorization: sendsay apikey=... (ключ URL-кодируется). Аутентификация действует на один вызов, выход не нужен. Также поддерживаются логин с паролем (сессия), JWT, двухфакторная аутентификация и OpenID.

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

POST /general/api/v100/json/{account} — issue.send: транзакционное письмо

В ответе — letter, по нему письмо отслеживается в статистике.

Параметр Где Тип Обяз. Описание
account path string да Код аккаунта
action body string да issue.send
sendwhen body string да now — отправить сразу
group body string да personal
email body string да Получатель
letter.subject body string да Тема
letter.from.name body string нет Имя отправителя
letter.from.email body string да Адрес отправителя
letter.message.html body string да HTML-текст
extra body object нет Значения для подстановки в шаблон
relink body integer нет Перелинковка ссылок

POST /general/api/v100/json/{account} — issue.send: массовая рассылка

Переменные в тексте вида [% anketa.personal.product %] должны совпадать с ключами в запросе.

Параметр Где Тип Обяз. Описание
account path string да Код аккаунта
action body string да issue.send
name body string нет Название черновика
sendwhen body string да now
group body string да masssending
letter body object да draft.id существующего черновика либо тема, отправитель и HTML
users.list body object нет Получатели: массив с блоками member и personal или объект caption + rows

Нюансы

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


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