MTCard

Подключение для разработчика

Дальше — техническое описание для того, кто будет подключать оплату к вашему сайту: штатного разработчика, подрядчика или ИИ-агента вроде Claude Code (ему достаточно дать ссылку на эту страницу — он прочитает и соберёт код сам). Если вы не программист — читать код не обязательно, просто передайте эту страницу тому, кто занимается сайтом.

Суть в двух шагах: ваш сайт отправляет один запрос — и получает в ответ ссылку на оплату для покупателя. Когда покупатель платит, MTCard сама сообщает об этом вашему сайту.

Ключ доступа

У каждого магазина свой секретный ключ (видно в настройках кабинета) — он подставляется в каждый запрос, чтобы MTCard знал, от какого магазина пришёл заказ: Authorization: Bearer <apiKey>.

Создать заказ

Запрос на создание заказа: POST /api/orders. Сумма передаётся в копейках.

curl -X POST https://ваш-домен/api/orders \
  -H "Authorization: Bearer <apiKey>" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 150000,
    "description": "Заказ №1042",
    "type": "instant"
  }'

В ответ приходит payUrl — ссылка на чекаут, куда нужно перенаправить покупателя. Поле type: instant — услуга или пополнение баланса, shippable — физический товар с отдельным подтверждением отгрузки.

Список заказов

GET /api/orders — последние 50 заказов магазина.

Подтвердить отгрузку

POST /api/orders/:id/fulfill — вызывается только для заказов type="shippable", когда товар физически отгружен покупателю. Для instant-заказов вызывать не нужно — заказ закрывается автоматически сразу после оплаты.

Вебхуки

На адрес, указанный в настройках магазина, приходит POST-запрос с одним из событий: payment.confirmed (оплата подтверждена) или order.fulfilled (заказ исполнен). Тело запроса подписано — заголовок X-MTCard-Signature содержит HMAC-SHA256 тела запроса на вашем API-ключе. Так вы можете проверить, что запрос действительно от MTCard, прежде чем доверять его содержимому.

{
  "event": "payment.confirmed",
  "orderId": "...",
  "amount": 150000,
  "currency": "RUB",
  "description": "Заказ №1042",
  "occurredAt": "2026-09-18T12:00:00.000Z"
}