Документация к API Patdy.ru
API позволяет создавать счета на оплату и получать информацию об оплаченных счетах.
Для авторизации запросов требуется
API Key. Чтобы получить API Key, пишите вашему менеджеру или на почту
support@patdy.ru .
Создание ссылки на оплату
Метод: 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 |
Необязательный. В случае неудачи клиент будет перенаправлен по указанной ссылке. |
| plan |
Необязательный. Переодичность рекуррентного платежа. Возможные значения: “1_week”, “1_month”, “3_months”, “6_months”, “1_year” |
| is_rub |
Необязательный условно**. Флаг для создания ссылки на оплаты в рублях. Возможные значения: “0”, “1” |
* Обязательно должна быть указана сумма в рублях или долларах. Если переданы будут сразу два значения, то приоритет будет отдан полю order_sum_rub, а поле order_sum_usd будет проигнорировано.
** Если указан флаг (int) is_rub = 1, то поле order_sum_rub становится обязательным, а поля order_sum_usd, language, plan будут проигнорированы.
*** Поля order_sum_usd, language, plan работают только для международных платежей т.е. если флаг is_rub не передан или is_rub = 0.
Результат запроса: JSON объект
{
"invoice_id": 1111, // ID созданного счета на оплату
"payment_link": "URL" // Ссылка на оплату
}
Получение информации об оплаченных заказах
Метод: GET
Метод возвращает информацию обо всех оплаченных заказах в формате JSON.
Передаваемые параметры:
| api_key |
Обязательный. Ключ доступа |
| user_id |
Обязательный. ID учетной записи на Patdy |
| 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" // Номер счета на оплату
"is_rub":"0" // Тип платежа (1 - Рублёвый, 0 - др. валюта)
},
]
}
Уведомление о платежных операциях
В личном кабинете на странице профиля Вы можете указать ссылку, по которой хотите отправлять уведомления об успешных платежных транзакциях. Уведомление придет в течение минуты после оплаты счета, а код ожидаемого ответа - 200. Если код ответа отличается, то попытка доставки уведомления будет повторяться каждый час в течение 5 дней.
Пример приходящего уведомления: JSON объект
{
"merchant_identifier":"123456", // Ид Вашего аккаунта в системе (user_id)
"merchant_reference":"1234", // Ваш внутренний номер заказа
"event":"payment.succeeded", // Событие
"response_message":"Success", // Сообщение о событии
"invoice_id":"000001" // Номер счета на оплату
"amount_usd": "", // Сумма счета в долларах
"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", // Платежная система, через которую был произведен платеж
"is_rub":"1", // Тип платежа (1 - Рублёвый, 0 - др. валюта)
}
* Если платеж рублевый (is_rub == 1) то поле amount_usd = '' будет пустой строкой.
Чтобы проверить достоверность уведомления, вы можете:
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}} удален"
}
]
}
}