# Установка базового URL для запросов
base_url = 'https://mayfpay.top/'
# Параметры запроса
params = {
'api_token': '', # Здесь нужно указать ваш API токен
'kassa_id': '', # Здесь нужно указать идентификатор кассы
'amount': '', # Здесь нужно указать сумму платежа
'order_id': '', # Здесь нужно указать идентификатор заказа
}
secret_key = '' # Здесь нужно указать ваш секретный ключ
public_key = '' # Здесь нужно указать ваш публичный ключ
# Преобразование параметров запроса в строку JSON
payload_str = json.dumps(params)
# Создание подписи запроса
XApiSignature = hmac.new(secret_key.encode(), payload_str.encode(), hashlib.sha256).hexdigest()
# Формирование заголовков запроса
headers = {
'timestamp': str(time.time()),
'x-api-public-key': public_key,
'x-api-signature': XApiSignature,
'Content-type': 'application/json',
}
# Формирование полного URL для создания инвойса
url = base_url + 'api/v2/kassa/invoice/create'
# Отправка POST-запроса для создания инвойса
response = requests.post(url, json=params, headers=headers)
<?php
$base_url = 'https://mayfpay.top/';
$params = array(
'api_token' => '', // Здесь нужно указать ваш API токен
'kassa_id' => '', // Здесь нужно указать идентификатор кассы
'amount' => '', // Здесь нужно указать сумму платежа
'order_id' => '' // Здесь нужно указать идентификатор заказа
);
$secret_key = ''; // Здесь нужно указать ваш секретный ключ
$public_key = ''; // Здесь нужно указать ваш публичный ключ
$payload_str = json_encode($params);
$XApiSignature = hash_hmac('sha256', $payload_str, $secret_key);
$headers = array(
'timestamp' => strval(time()),
'x-api-public-key' => $public_key,
'x-api-signature' => $XApiSignature,
'Content-type' => 'application/json'
);
$url = $base_url . 'api/v2/kassa/invoice/create';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>
const crypto = require('crypto');
const axios = require('axios');
// Установка базового URL для запросов
const base_url = 'https://mayfpay.top/';
// Параметры запроса
const params = {
api_token: '', // Здесь нужно указать ваш API токен
kassa_id: '', // Здесь нужно указать идентификатор кассы
amount: '', // Здесь нужно указать сумму платежа
order_id: '', // Здесь нужно указать идентификатор заказа
};
const secret_key = ''; // Здесь нужно указать ваш секретный ключ
const public_key = ''; // Здесь нужно указать ваш публичный ключ
// Преобразование параметров запроса в строку JSON
const payload_str = JSON.stringify(params);
// Создание подписи запроса
const XApiSignature = crypto
.createHmac('sha256', secret_key)
.update(payload_str)
.digest('hex');
// Формирование заголовков запроса
const headers = {
timestamp: String(Date.now() / 1000),
'x-api-public-key': public_key,
'x-api-signature': XApiSignature,
'Content-type': 'application/json',
};
// Формирование полного URL для создания инвойса
const url = base_url + 'api/v2/kassa/invoice/create';
// Отправка POST-запроса для создания инвойса
axios
.post(url, params, { headers })
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
curl -X POST -H "timestamp: <timestamp_value>" \
-H "x-api-public-key: <public_key_value>" \
-H "x-api-signature: <XApiSignature_value>" \
-H "Content-type: application/json" \
-d '{
"api_token": "<api_token_value>",
"kassa_id": "<kassa_id_value>",
"amount": "<amount_value>",
"order_id": "<order_id_value>"
}' "https://mayfpay.top/api/v2/kassa/invoice/create"
Пример ответа запроса (Ошибка):
{"success":false, "error":"...", "time":"..."}
Пример ответа запроса (Успешно):
{
'success': true,
'Id': ...,
'OrderId':'...',
'StatusTransaction': 0,
'KassaId': ...,
'Amount': ...,
'Currency': '...',
'AccountAmount': ...,
'RecipientTotalAmount': ...,
'PayyerTotalAmount': ...,
'FeeOn': ...,
'PayMethodId': '...',
'Comment': None,
'TransactionData': ...,
'DateOfCreateTransactions': '...',
'SuccessUrl': '...',
'UnSuccessUrl': '...',
'UrlTransaction':'',
'Sign': ...
}
Предоставляет возможность получить подробную информацию о конкретном счете.
- URL метода:
https://mayfpay.top/api/v2/kassa/invoice/check
- Метод:
GET
- Content-Type:
application/json
- Описание:
Детальная информация о счете
Параметр |
Тип |
Описание |
Обязательно |
api_token |
string |
API токен. |
+ |
order_id |
int |
Идентификатор транзакции в вашей системе.Ес |
+ |
{
'success': true,
'Id': ...,
'OrderId':'...',
'StatusTransaction': 0,
'KassaId': ...,
'Amount': ...,
'Currency': '...',
'AccountAmount': ...,
'RecipientTotalAmount': ...,
'PayyerTotalAmount': ...,
'FeeOn': ...,
'PayMethodId': '...',
'Comment': None,
'TransactionData': ...,
'DateOfCreateTransactions': '...',
'SuccessUrl': '...',
'UnSuccessUrl': '...',
'UrlTransaction':'',
'Sign': ...
}
Данное уведомление приходит после успешной оплаты в вашем магазине. Указать WebHook(Ссылку для уведомлений), можно в настройках магазина.
- Метод:
POST
- Content-Type:
application/json
- Описание:
Callback функция для передачи информации об изменении статуса платежа
Параметр |
Тип |
Описание |
Id |
integer |
Идентификатор транзакции в нашей системе. |
OrderId |
string |
Идентификатор транзакции в вашей системе. |
StatusTransaction |
integer |
Статус транзакции. (1 - Транзакция оплачена) (0 - Транзакция в ожидание оплаты) (2 Транзакция отмененна. |
Amount |
float |
Сумма транзакции. |
AccountAmount |
float |
Сумма транзакции. |
RecipientTotalAmount |
float |
Сумма, полученная получателем. |
PayMethodId |
string |
Платежный метод. |
|
SubPayMethodId |
string |
Доп. Платежный система. |
|
Comment |
string |
Назначение платежа. |
TransactionData |
json |
Данные транзакции. |
DateOfCreateTransactions |
datetime |
Дата и время создания транзакции. |
DateOfPayTransactions |
datetime |
Дата и время оплаты транзакции. |
Sign |
string |
Подпись транзакции. |
UrlTransaction |
string |
URL транзакции. |
CBStatus |
string |
Статус Callback. SuccessfulTransaction - CB об успешной оплате / CanceledTransaction - CB об отмененной оплате |
{
'Id': ...,
'OrderId':'...',
'StatusTransaction': 0,
'KassaId': ...,
'Amount': ...,
'Currency': '...',
'AccountAmount': ...,
'RecipientTotalAmount': ...,
'PayyerTotalAmount': ...,
'FeeOn': ...,
'PayMethodId': '...',
'Comment': None,
'TransactionData': ...,
'DateOfCreateTransactions': '...',
'SuccessUrl': '...',
'UnSuccessUrl': '...',
'UrlTransaction':'',
'Sign': ...
'CBStatus': ...
}
Генерация ключа, обязательный параметр. Он требуется для проверки платежа на уникальность и подтверждения, что переход к оплате был с вашего сайта. SIGNATURE ключ должен быть сгенерирован до отправки формы и введен в форму!
Метод шифрования: sha256
Параметр |
Тип |
Описание |
Обязательно |
KassaId |
string |
ID Кассы в нашей системе. |
+ |
Amount |
string |
Сумма транзакции. |
+ |
KassaSecretKey |
string |
Секретный ключ Кассы. |
+ |
OrderId |
string |
ID Транзакции в вашей системе. |
+ |
# Example in Python
import hashlib
KassaId = ''
KassaSecretKey =''
Amount = ''
OrderId = ''
concatenated_string = ':'.join([KassaId, Amount, KassaSecretKey, OrderId])
sign = hashlib.sha256(concatenated_string.encode()).hexdigest()
# print(sign)
1.9 Эквайринг (H2H)
Метод H2H (Host To Host) — оптимальное решение для эффективной интеграции.
Для осуществления платежа напрямую, вам потребуется выполнить два запроса:
Сначала нужно будет обратиться к https://mayfpay.top/api/v2/kassa/invoice/create
для создания платежа, затем к https://mayfpay.top/api/v2/kassa/invoice/create/card-flow
.
Также для обновления статуса потребуется обращаться к https://mayfpay.top/api/v2/kassa/invoice/check/card-flow
.
- URL метода:
https://mayfpay.top/api/v2/kassa/invoice/create/card-flow
- Метод:
POST
- Content-Type:
application/json
- Описание:
Получение реквизитов карты для проведения платежа
Параметр |
Тип |
Описание |
Обязательно |
id |
string |
Id Платежа. |
+ |
ua |
string |
User-Agent плательщика. |
+ |
ip |
string |
IP-адрес плательщика. |
+ |
holder |
string |
Имя владельца карты. |
+ |
card |
dict |
Реквизиты карты. |
+ |
Пример тела запроса:
{
"id": 33820, // Id платежа
"ua": ..., // User-Agent плательщика
"ip": ..., // IP-адрес плательщика
"card": {
"pan": "2202883001546689", // Номер карты без пробелов
"expire": ["01", "30"], // Дата окончания - месяц, год
"cvv": "123", // cvv/cvc карты
}
}
Пример ответа в случае успеха:
{
"success": true, // Успешный ли запрос
"redirect": {
"url": "...", // URL для 3DS-формы
"updateInterval": 2500 // Рекомендуемый интервал обновления статуса
}
}
Далее необходимо отправить пользователя на url
в payload
.
- URL метода:
https://mayfpay.top/api/v2/kassa/invoice/check/card-flow
- Метод:
POST
- Content-Type:
application/json
- Описание:
Запрос на получение статуса платежа
Параметр |
Тип |
Описание |
Обязательно |
id |
string |
Id Платежа. |
+ |
Возможные статусы:
created
- Создан, процесс оплаты ещё не был начат pending
- Ожидает оплаты processing
- Происходит процессинг failed
- Ошибка платежа paid
- Оплачен
1.8 P2P (peer-to-peer) Платежи (H2H)
Метод H2H (Host To Host) — оптимальное решение для эффективной интеграции.
- URL метода:
https://mayfpay.top/api/v2/p2p/payments/request-methods
- Метод:
GET
- Content-Type:
application/json
- Описание:
Получение доступных методов оплаты
Параметр |
Тип |
Описание |
Обязательно |
country |
string |
ГЕО страны. |
+ |
amount |
string |
Сумма платежа. (В валюте country) |
+ |
Для осуществления платежа напрямую, вам потребуется выполнить три запроса:
Сначала нужно будет обратиться к https://mayfpay.top/api/v2/kassa/invoice/create
для создания платежа, затем к https://mayfpay.top/api/v2/kassa/invoice/create/p2p/order
.
После для подтверждения ордера отправить запрос на https://mayfpay.top/api/v2/kassa/invoice/admission/p2p/order
.
- URL метода:
https://mayfpay.top/api/v2/kassa/invoice/create/p2p/order
- Метод:
POST
- Content-Type:
application/json
- Описание:
Получение реквизитов карты для проведения платежа
Параметр |
Тип |
Описание |
Обязательно |
id |
string |
Id Платежа. |
+ |
pay_method_tag |
string |
Уникальный идентификатор банка. |
+ |
customer_name |
string |
FULL NAME пользователя. |
|
customer_email |
string |
Электронная почта пользователя. |
|
Пример тела запроса:
{
"id": 33820, // Id платежа
"pay_method_tag": ..., // Pay Method идентификатор метода
}
Пример ответа в случае успеха:
{
'success': True,
'amount': ...,
'P2PSlug': ...,
'P2PTag': ...,
'P2PCurrency': ...,
'CardP2PBlank': ...,
'RequisitesP2PBank': ...,
'RequisitesP2PCard': ...,
'RequisitesP2PHolder': ...,
'RequisitesP2PPhone': ...,
'RequisitesP2PPhoneBank':...,
'H2H': True
}
Далее необходимо вставить реквизиты в форму
.
Для некоторых методов требуется подтверждение P2P-ордера.
- URL метода:
https://mayfpay.top/api/v2/kassa/invoice/admission/p2p/order
- Метод:
POST
- Content-Type:
application/json
- Описание:
Запрос на подтверждение статуса ордера
Параметр |
Тип |
Описание |
Обязательно |
id |
string |
Id Платежа. |
+ |
card_mask |
string |
Последние 4 цифры номера карт плательщика. |
+ |
Апелляция Транзакций (API)
Апелляция Транзакций (API) - это программный интерфейс, предоставляющий возможность разработчикам взаимодействовать с системой апелляции транзакций.
- URL метода:
https://mayfpay.top/api/v2/kassa/invoice/create/disput
- Метод:
POST
- Content-Type:
application/json
- Описание:
Подача апелляции по транзакции
Параметр |
Тип |
Описание |
Обязательно |
api_token |
string |
API токен. |
+ |
order_id |
string |
Идентификатор транзакции в вашей системе. |
+ |
attachment |
string |
Array of Base64 encoded images. |
+ |
disput_type |
string |
Тип аппеляции. (delay - Задержка / recalculating - Пересчет) |
+ |
comment |
string |
Комментарий. |
|
Пример тела запроса:
base_url = 'https://mayfpay.top/'
# Формируем тело запроса
data = {
'api_token': 'api_token',
'order_id': 'order_id',
'attachment': 'attachments',
'disput_type': 'disput_type',
'comment': 'comment'
}
# Отправляем запрос к целевому API
url = base_url + 'api/v2/kassa/invoice/create/disput'
response = requests.post(url, json=data)
<?php
$base_url = 'https://mayfpay.top/';
// Формируем тело запроса
$data = array(
'api_token' => 'api_token',
'order_id' => 'order_id',
'attachment' => 'attachments',
'disput_type' => 'disput_type',
'comment' => 'comment'
);
// Отправляем запрос к целевому API
$url = $base_url . 'api/v2/kassa/invoice/create/disput';
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
curl -X POST -H "Content-Type: application/json" -d '{
"api_token": "api_token",
"order_id": "order_id",
"attachment": "attachments",
"disput_type": "disput_type",
"comment": "comment"
}' http://mayfpay.top/api/v2/kassa/invoice/create/disput
2.1 Информация о кошельке
Запрос требует обязательных выполнений критерий. API ключ устойчив к регистру
URL: https://mayfpay.top/api/v1/wallet
Метод отправки: GET
Параметр |
Тип |
Описание |
Обязательно |
api_token |
string |
API токен. |
+ |
{
"wallet_id": "MPADMIN",
"wallet_balance": 890.29
}
2.2 Перевод средств
Запрос требует обязательных выполнений критерий. API ключ устойчив к регистру
URL: https://mayfpay.top/api/v1/wallet/transfer/create
Метод отправки: POST
Параметр |
Тип |
Описание |
Обязательно |
api_token |
string |
API токен. |
+ |
amount |
float |
Сумма к переводу. |
+ |
method |
string |
Уникальный номер сервиса куда будет осуществлен вывод. |
+ |
fee_type |
Integer |
Комиссия. (0 - На отправителе / 1 - На получателе) |
+ |
wallet_service |
string |
Реквизиты для вывода. |
+ |
call_back_url |
string |
URL адрес для получения веб-хука. |
|
kassa_id |
Integer |
Вывод баланса напрямую с кассы. |
|
extra_wallet_service |
json |
Дополнительные реквизиты для вывода. |
|
По изменению статуса перевода, вы получите следующую информацию на ваш call_back_url.
{
"Id": 26,
"DateOfCreateTransactions": "2023-06-01T22:11:14.094477+03:00",
}
{
"Id": 26,
"StatusTransaction": 0,
"PayeerWallet": "MPADMIN",
"RecipientWallet": "eur",
"KassaId": null,
"TypeTransaction": "Transfer",
"PayMethod": "eur",
"Commnet": null,
"Amount": 450.0,
"CurrencyAmount": 5.1,
"Currency": "EUR",
"PayyerTotalAmount": 463.5,
"RecipientTotalAmount": 450.0,
"FeeTotalAmount": 13.5,
"FeeType": 0,
"DateOfCreateTransactions": "2023-06-01T22:11:14.094477+03:00"
}
2.2.1 Информация о переводе
Запрос требует обязательных выполнений критерий. API ключ устойчив к регистру
URL: https://mayfpay.top/api/v1/wallet/transfer/check
Метод отправки: GET
Параметр |
Тип |
Описание |
Обязательно |
api_token |
string |
API токен. |
+ |
id |
integer |
Индификатор транзакции. |
+ |
{
"Id": 26,
"StatusTransaction": 0,
"PayeerWallet": "MPADMIN",
"RecipientWallet": "eur",
"KassaId": null,
"TypeTransaction": "Transfer",
"PayMethod": "eur",
"Commnet": null,
"Amount": 450.0,
"CurrencyAmount": 5.1,
"Currency": "EUR",
"PayyerTotalAmount": 463.5,
"RecipientTotalAmount": 450.0,
"FeeTotalAmount": 13.5,
"FeeType": 0,
"DateOfCreateTransactions": "2023-06-01T22:11:14.094477+03:00"
}
Python библиотека
Установить библиотеку можно с нашего
репозитория на GitHub.