protopaysAPI

MTS T-Pay (mtstpay)

Плательщик открывает ссылку и вводит карту. Регистрация в МТС и SMS не нужны. В ответе мерчанту нет реквизитов получателя — только checkoutUrl.

После отправки карты статус остаётся pending, пока платёж не закроется. Старый код m2tjs тоже принимается.

Создание

POSThttps://api.protopays.io/api/v1/payments

Нужны orderId, amount, currency: "RUB", callbackUri, method: "mtstpay". Поля карты в create не принимаются. Метод должен быть включён на кассе.

json
{
  "orderId": "mtstpay-order-001",
  "amount": "1000",
  "currency": "RUB",
  "callbackUri": "https://example.com/hooks/protopays",
  "method": "mtstpay"
}
json
{
  "message": "Payment created",
  "data": {
    "id": "<uuid>",
    "orderId": "mtstpay-order-001",
    "status": "pending",
    "amount": "1000.00",
    "currency": "RUB",
    "method": "mtstpay",
    "checkoutUrl": "https://pay.protopays.io/pay/ckt_<token>",
    "mtstpay": { "phase": "awaiting_payer_details" },
    "expiresAt": "2026-08-26T16:15:00+03:00"
  }
}

Отправьте плательщика на checkoutUrl. Итог придёт в webhook.

Форма оплаты

На ссылке один шаг: карта. Реквизиты получателя плательщик не видит и в API мерчанту они не отдаются.

  1. Карта (номер, срок, CVV) → «Оплатить».
  2. Если банк просит подтверждение — плательщик вводит код в окне на той же странице.

После этого страница ждёт результат. Новый платёж — новая ссылка.

Фазы mtstpay.phase

  • awaiting_payer_details — ждём карту
  • autopay_queued / autopay_running — идёт автоматическая оплата
  • awaiting_payer_3ds — банк просит подтверждение на странице оплаты
  • autopay_submitted — данные отправлены, статус всё ещё pending
  • autopay_failed — автоматическая попытка не удалась, платёж pending до истечения
  • expired — время сессии вышло

Карта

  • Полный номер карты и CVV только на странице оплаты. В API мерчанта — последние 4 цифры.
  • CVV хранится коротко и затем удаляется.
  • Телефон получателя в ответе create нет.