atrix PaySDK

Matrix Pay Python SDK

Python SDK для интеграции с платёжной системой Matrix Pay.

Установка

PY Python SDKВстраиваемый модуль Скачать

Требования

  • Python 3.7+
  • Без внешних зависимостей (только стандартная библиотека)
  • API-ключ кассы: кабинет → «Настройки» → «API-ключ»

Быстрый старт

Создание платежа

Проверка статуса платежа

Обработка callback (Flask)

Обработка callback (Django)

Способы оплаты

КонстантаЗначениеОписание
MatrixPay.METHOD_SBPsbpСБП (QR) — страница оплаты на matrix-pay.io
MatrixPay.METHOD_CRYPTOBOTcryptobotКриптовалюта — оплата в @CryptoBot
MatrixPay.METHOD_XROCKETxrocketКриптовалюта — оплата в @xRocket

Также доступны: list_payments, cancel_payment, get_merchant, get_balance.

Статусы платежей

КонстантаЗначениеОписание
MatrixPay.STATUS_PENDINGPENDINGОжидает оплаты
MatrixPay.STATUS_CONFIRMEDCONFIRMEDУспешно оплачен
MatrixPay.STATUS_CANCELEDCANCELEDОтменён или истёк (30 минут)
MatrixPay.STATUS_CHARGEBACKEDCHARGEBACKEDChargeback

Обработка ошибок

HTTPcodeОписание
400BAD_AMOUNTСумма вне лимитов кассы
400NO_PROVIDERСпособ оплаты не подключён
401UNAUTHORIZEDНеверный или отозванный API-ключ
403MERCHANT_DISABLEDКасса отключена
404NOT_FOUNDПлатёж не найден
409NOT_CANCELABLEПлатёж уже оплачен или закрыт
429RATE_LIMITEDБольше 120 запросов в минуту

Адрес вебхука

Укажите этот адрес в кабинете кассы → «Настройки» → «Вебхук», там же возьмите секрет для MatrixPayCallback:

  • Flask: https://yoursite.com/callback
  • Django: https://yoursite.com/payment/callback/

Вебхук подписан HMAC-SHA256 (X-MatrixPay-Signature), SDK проверяет подпись и время. Ответьте 200 за 10 секунд, иначе будут повторы около полутора суток: 30 с, 2 мин, 10 мин, 1 ч, 3 ч, 12 ч, 24 ч. У повтора тот же X-MatrixPay-Delivery — по нему отсеивайте дубли.

После «Новый секрет» старый ещё сутки подписывает вебхуки вместе с новым (две подписи через запятую) — SDK примет любую из них.

REST API

BASEhttps://matrix-pay.io/api/v1
KEYAuthorization: Bearer mp_live_…
ЗапросSDK
POST /invoicescreate_payment
GET /invoices/{id}get_payment_status
GET /invoiceslist_payments
POST /invoices/{id}/cancelcancel_payment
GET /meget_merchant
GET /balanceget_balance