Документация к API Paytoday.pro
API позволяет создавать счета на оплату и получать информацию об оплаченных счетах.
Для авторизации запросов требуется
API Key. Чтобы получить API Key, пишите вашему менеджеру или на почту
ask@paytoday.pro .
Создание ссылки на оплату
Метод: GET
Метод создает новый счет на оплату и возвращает ID созданного счета и URL ссылки на оплату
Передаваемые параметры:
api_key |
Обязательный. Ключ доступа |
order_id |
Обязательный. Ваш внутренний номер заказа |
order_sum_rub |
Необязательный условно*.. Сумма заказа в рублях |
order_sum_usd |
Необязательный условно*.. Сумма заказа в долларах |
client[name] |
Обязательный. Имя клиента |
client[phone] |
Необязательный. Телефон клиента. |
client[email] |
Обязательный. Email-клиента |
order_description |
Необязательный. Описание заказа |
language |
Необязательный. Возможные значения: “ru” или “en”. По-умолчанию, “ru”. Язык интерфейса страницы оплаты. |
success_url |
Необязательный. В случае успеха клиент будет перенаправлен по указанной ссылке. |
fail_url |
Необязательный. В случае неудачи клиент будет перенаправлен по указанной ссылке. |
* Обязательно должна быть указана сумма в рублях или долларах. Если переданы будут сразу два значения, то приоритет будет отдан полю order_sum_rub, а поле order_sum_usd будет проигнорировано.
Результат запроса: JSON объект
{
"invoice_id": 1111, // ID созданного счета на оплату
"payment_link": "URL" // Ссылка на оплату
}
Получение информации об оплаченных заказах
Метод: GET
Метод возвращает информацию обо всех оплаченных заказах в формате JSON.
Передаваемые параметры:
api_key |
Обязательный. Ключ доступа |
user_id |
Обязательный. ID учетной записи на Shopozz |
date_from |
Необязательный Фильтр по дате оплаты, нижняя граница. Передается в формате YYYY-MM-DD, например, “2022-01-24”. |
date_to |
Необязательный Фильтр по дате оплаты, верхняя граница. Передается в формате YYYY-MM-DD, например, “2022-06-29” |
invoice_ids |
Необязательный. Фильтр по номерам заказа. Номера передаются через запятую, например invoice_ids=1111,2222,4444 |
Если фильтры по дате не переданы, то возвращается информация обо всех оплаченных счетах.
Результат запроса: JSON объект
{
"transactions":
[
{
"transaction_id":"95000", // Номер транзакции
"order_id":"3", // Внутренний номер заказа
"payment_sum_usd": "10.00", // Сумма заказа в $
"payment_data":"2022-04-08 14:32:23", // Дата и время оплаты
"payment_sum_rub":"763", // Сумма заказа в рублях
"client_name":"Иванов Иван", // Имя клиента
"client_phone":"800000000000", // Телефон клиента
"client_email":"test@mail.ru", // Email клиента
"status":"1", // Статус заказа (1 - Оплачен, 0 - Не оплачен)
"order_info":"", // Информация о заказе
"invoice_id":"1110" // Номер счета на оплату
},
]
}
Уведомление о платежных операциях
В личном кабинете на странице профиля Вы можете указать ссылку, по которой хотите отправлять уведомления об успешных платежных транзакциях. Уведомление придет в течение минуты после оплаты счета, а код ожидаемого ответа - 200. Если код ответа отличается, то попытка доставки уведомления будет повторяться каждый час в течение 5 дней.
Пример приходящего уведомления: JSON объект
{
"merchant_identifier":"123456", // Ид Вашего аккаунта в системе (user_id)
"merchant_reference":"1234", // Ваш внутренний номер заказа
"event":"payment.succeeded", // Событие
"response_message":"Success", // Сообщение о событии
"invoice_id":"000001" // Номер счета на оплату
"amount_usd": "12.31", // Сумма счета в долларах
"amount_rub": "1000", // Сумма счета в рублях
"status":"1", // Статус заказа (1 - Оплачен, 0 - Не оплачен)
"customer_name":"Иванов Иван", // Имя клиента
"customer_email":"test@mail.ru", // Email клиента
"date_paymented":"2022-04-08 14:32:23", // Дата и время оплаты
"billing":"Tap", // Платежная система, через которую был произведен платеж
}
Чтобы проверить достоверность уведомления, вы можете:
1. Добавить проверку по IP-адресу. Мы отправляем уведомления только с 82.148.17.217.
2. Добавить проверку целостности.
Пример проверки целостности уведомления (php):
// Принимаем уведомление
$source = file_get_contents('php://input');
$requestBody = json_decode($source, true);
// Пароль должен быть заменен на тот, который был сгенерирован в личном кабинете на странице профиля.
$sha = 'qwerty';
// Запоминаем hash уведомления
$signature = $requestBody['signature'];
// Формируем проверочный hash
unset($requestBody['signature']);
ksort($requestBody);
$hash = '';
foreach ($requestBody as $key => $value)
{
$hash .= "$key=$value";
}
// Проверяем целостность уведомления
if ($signature != hash("SHA256", $sha . $hash . $sha))
{
http_response_code(200);
exit('Ошибка проверки целостности уведомления');
}
Метод удаления счетов
Метод: GET
Метод удаляет счет, переданный в URL-параметре "order_id"
Для удаления нескольких счетов перечислите их через запятую
Передаваемые параметры:
api_key |
Обязательный. Ключ доступа |
order_id |
Обязательный. Ваш внутренний ID счета |
Результат запроса: JSON объект
{
{
"status": true,
"results": [
{
"order_id": "{{order_id}}",
"status": true,
"message": "Счет #{{order_id}} удален"
}
]
}
}