Info |
---|
Этот функционал будет активирован после вашего запроса в групповом чате. Также обязательно сообщите IP адреса, с которых будут отправляться запросы для добавления в белый список. |
Note |
---|
Ваш сайт должен работать по схеме HTTPS и поддерживать протокол TLS 1.2. |
Table of Contents |
---|
Описание
Регулярный платеж позволяет проводить списание без участия плательщика.
В запросе используется ранее сохраненная карта в виде зашифрованого CARD_TOKEN, который можно получить из callback при первой Оплата картой или Верификации карты.
Дополнительно рекомендуем ознакомиться с разделом /wiki/spaces/docs/pages/1323303006
Требования
Уведомить клиентов об условиях подписки и регулярных списаниях
Получить согласие клиентов на регулярные списания
Получить согласие клиентов с условиями договора публичной оферты
Рекомендуем дать возможность отмены подписки клиентом на сайте или приложении
Согласно правил МПС разрешается 1 попытка списания в день
Разместить договор публичной оферты
Разместить логотипы платежных систем Visa и Mastercard
Добавить логотипы PSP Platon
API параметры запроса
HTTP METHOD:
Status | ||||
---|---|---|---|---|
|
API ENDPOINT: https://secure.platononline.com/post-unq/
Параметр
Значение
Описание
Особенности
Обязательно
action
SALE
Код платежного метода
Только одно значение
Status | ||||
---|---|---|---|---|
|
async
Y
N
Включить асинхронный режим
В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение N
Status | ||||
---|---|---|---|---|
|
channel_id
String
Дополнительный платежный канал
Позволяет отправить платежи на другой банковский терминал
Status | ||||
---|---|---|---|---|
|
client_key
String
API ключ мерчанта
Ключ предоставляется на почту мерчанту
Status | ||||
---|---|---|---|---|
|
order_id
String
ID платежа в системе мерчанта
Max 32 символа
Status | ||||
---|---|---|---|---|
|
order_amount
Number
Сумма платежа
Tip |
---|
Верный вариант 1000.00 |
Warning |
---|
Неверные варианты 1000 |
Status | ||||
---|---|---|---|---|
|
order_currency
UAH
Валюта платежа
Info |
---|
Оплата возможна только в национальной валюте гривне |
Status | ||||
---|---|---|---|---|
|
order_description
String
Описание платежа
Max 255 символов
Status | ||||
---|---|---|---|---|
|
card_token
String
Токен карты
card_token
из коллбека первичной транзакции
Status | ||||
---|---|---|---|---|
|
payer_first_name
String
Имя плательщика
Max 32 символа без пробелов
Status | ||||
---|---|---|---|---|
|
payer_last_name
String
Фамилия плательщика
Max 32 символа без пробелов
Status | ||||
---|---|---|---|---|
|
payer_address
String
Адрес плательщика
Max 256 символа
Status | ||||
---|---|---|---|---|
|
payer_country
String
Страна плательщика
В формате "ХХ"
2 символа
Укажите NA
, если нет данных
Status | ||||
---|---|---|---|---|
|
payer_state
String
Штат плательщика
В формате "ХХ"
2 символа
Укажите NA
, если нет данных
Status | ||||
---|---|---|---|---|
|
payer_city
String
Город плательщика
Max 32 символа
Укажите NA
, если нет данных
Status | ||||
---|---|---|---|---|
|
payer_zip
String
Почтовый индекс плательщика
Max 32 символа
Укажите NA
, если нет данных
Status | ||||
---|---|---|---|---|
|
payer_email
String
Почта плательщика
Валидная почта
Status | ||||
---|---|---|---|---|
|
payer_phone
Number
Номер телефона плательщика
В формате “380XXXXXXXXX”
Max 32 символа
Status | ||||
---|---|---|---|---|
|
payer_ip
Number
IP-адрес плательщика
В формате "ХХХ.ХХХ.ХХХ.ХХХ"
Status | ||||
---|---|---|---|---|
|
customer_wallet
String
Номер електронного кошелька пользователя
Поле обязательно для типов бизнеса связаных с виртуальными активами
Status | ||||
---|---|---|---|---|
|
term_url_3ds
String
Status | ||||
---|---|---|---|---|
|
auth
Y
N
Y
или N
(по умолчанию N
)
Status | ||||
---|---|---|---|---|
|
ext3
recurring
Признак регулярного платежа
Status | ||||
---|---|---|---|---|
|
hash
String
Контрольная подпись
Code Block | ||
---|---|---|
| ||
md5(
strtoupper(
strrev($payer_email).
$client_pass.
strrev($card_token)
)
) |
Info |
---|
Если при первоначальном запросе на оплату не был указан |
Status | ||||
---|---|---|---|---|
|
Примеры запроса
Для просмотра примера раскройте список
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Iframe | ||||||||
---|---|---|---|---|---|---|---|---|
|
Тестирование
В целях тестирования используйте CARD_TOKEN полученный из коллбека при успешной транзакции с использованием наших тестовых реквизитов:
Проверка платежей
Получить информацию о платежах можно несколькими способами:
Используя Callback для автоматизации процесса зачисления в системе на вашей стороне
Нотификация в Telegram Bot об успешной оплате с деталями платежа сразу после списания
В вашем личном кабинете Platon
CSV файл с деталями платежей скачав в личном кабинете Platon
Банковский реестр на почту или ваш FTP
Работа с Callback
Info |
---|
Рекомендуем ознакомиться с разделами: |
Синхронный режим:
Данный режим работает по умолчанию. Передавать async = N
не нужно.
При успешной оплате (синхронный режим):
title | Response при успешном списании |
---|
Code Block | ||
---|---|---|
| ||
{
"action":"SALE",
"result":"SUCCESS",
"status":"SETTLED",
"order_id":"4385302",
"trans_id":"28261-34099-19648",
"descriptor":null,
"trans_date":"2020-02-25 06:50:09"
} |
Параметр
Описание
action
SALE
result
SUCCESS
status
SETTLED
(PENDING
, если в запросе было указано auth = Y
)
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
descriptor
NULL
title | Callback при успешном списании |
---|
Code Block | ||
---|---|---|
| ||
array (
'action' => 'SALE',
'result' => 'SUCCESS',
'status' => 'SETTLED',
'order_id' => '4385323',
'trans_id' => '28261-47789-28578',
'trans_date' => '2020-02-25 07:12:58',
'descriptor' => NULL,
'hash' => '********************************',
) |
Параметр
Описание
action
SALE
result
SUCCESS
status
SETTLED
(PENDING
, если в запросе было указано auth = Y
)
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
descriptor
NULL
card_hash
Уникальное зашифрованное значение номера карты, которое будет возвращаться в коллбеке при оплате, верификации, погашении и выплате средств на карту.
Этот параметр даст вам возможность в вашей системе:
Привязать карту под клиента.
Проверить не использовал ли другой клиент эту же карту.
Проверить какие кредиты, товары и услуги погашаются данной картой.
Отслеживать мошенничество, когда клиент использует ту же карту с другого аккаунта, например, чтобы повторно воспользоваться акцией.
Info |
---|
Если вы хотите использовать данный функционал, пожалуйста, сообщите нам для его включения. |
hash
Зашифрованная подпись для проверки достоверности коллбека
Code Block |
---|
md5(
strtoupper(
strrev(email).
client_pass.
trans_id.
strrev(
substr(card,0,6).
substr(card,-4)
)
)
) |
Info |
---|
Внимание! Если при запросе на оплату не был указан |
При неуспешной оплате (синхронный режим):
title | Response при неуспешном списании |
---|
Code Block | ||
---|---|---|
| ||
{
"action":"SALE",
"result":"DECLINED",
"status":"DECLINED",
"order_id":"4092002",
"trans_id":"28076-29879-99538",
"trans_date":"2020-02-03 20:49:47",
"decline_reason":"Declined by processing"
} |
Параметр
Описание
action
SALE
result
DECLINED
status
DECLINED
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
descriptor
NULL
decline_reason
Причина отмены транзакции
title | Callback при неуспешном списании |
---|
Code Block | ||
---|---|---|
| ||
array (
'action' => 'SALE',
'result' => 'DECLINED',
'status' => 'DECLINED',
'order_id' => '4092002',
'trans_id' => '28076-29879-99538',
'trans_date' => '2020-02-03 20:49:47',
'decline_reason' => 'Declined by processing',
'hash' => '********************************',
) |
Параметр
Описание
action
SALE
result
DECLINED
status
DECLINED
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
descriptor
NULL
decline_reason
Причина отмены транзакции
hash
Зашифрованная подпись для проверки достоверности коллбека
Code Block |
---|
md5(
strtoupper(
strrev(email).
client_pass.
trans_id.
strrev(
substr(card,0,6).
substr(card,-4)
)
)
) |
Info |
---|
Внимание! Если при запросе на оплату не был указан |
Асинхронный режим:
Данный режим активируется при передаче async = Y
. В этом режиме обязательно необходимо принимать callback на ваш callback url.
Промежуточный ответ (асинхронный режим):
title | Response о принятии запроса в обработку |
---|
Code Block | ||
---|---|---|
| ||
{
"action":"SALE",
"result":"ACCEPTED",
"order_id":"4385302",
"trans_id":"28261-34099-19648",
"trans_date":"2020-02-25 06:50:09"
} |
Параметр
Описание
action
SALE
result
ACCEPTED
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
При успешной оплате (асинхронный режим):
title | Callback при успешном списании |
---|
Code Block | ||
---|---|---|
| ||
array (
'action' => 'SALE',
'result' => 'SUCCESS',
'status' => 'SETTLED',
'order_id' => '4385323',
'trans_id' => '28261-47789-28578',
'trans_date' => '2020-02-25 07:12:58',
'descriptor' => NULL,
'recurring_token' => '01e00c2b39bb3b933723307c442efd02',
'card_token' => '8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2',
'hash' => '********************************',
) |
Info |
---|
Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(strrev(email).client_pass.trans_id.strrev(substr(card,0,6).substr(card,-4)))). Внимание! Если при первоначальном запросе на оплату, когда был получен токен не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email. |
Параметр
Описание
action
SALE
result
SUCCESS
status
SETTLED
(PENDING
, если в запросе было указано auth = Y
)
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
descriptor
NULL
recurring_token
Зашифрованный токен карты для последующих транзакций по rc_token
card_token
Зашифрованный токен карты для последующих транзакций по card_token
hash
Зашифрованная подпись для проверки достоверности коллбека
При неуспешной оплате (асинхронный режим):
title | Callback при неуспешном списании |
---|
Code Block | ||
---|---|---|
| ||
array (
'action' => 'SALE',
'result' => 'DECLINED',
'status' => 'DECLINED',
'order_id' => '4092002',
'trans_id' => '28076-29879-99538',
'trans_date' => '2020-02-03 20:49:47',
'decline_reason' => 'Declined by processing',
'hash' => '********************************',
) |
Info |
---|
Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(strrev(email).client_pass.trans_id.strrev(substr(card,0,6).substr(card,-4)))). Внимание! Если при первоначальном запросе на оплату, когда был получен токен не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email. |
Параметр
Описание
action
SALE
result
DECLINED
status
DECLINED
order_id
Уникальный ордер ID транзакции в системе мерчанта
trans_id
Уникальный ордер ID транзакции в системе Platon
trans_date
Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)
descriptor
NULL
decline_reason
Причина отмены транзакции
hash
Зашифрованная подпись для проверки достоверности коллбека
Просроченные токены
Note |
---|
Если в ответе на запрос вы получили одну из указанных ниже ошибок вам необходимо удалить токен как просроченный.
|
Warning |
---|
Данный CARD_TOKEN заблокированы и не подлежат восстановлению по причине блокировки / окончания действия банковской карты. |
Tip |
---|
Необходимо получить новый CARD_TOKEN проведя верификацию или оплату. |
Ошибки запросов
В ходе проведения запрос вы можете получить разные ошибки. Пожалуйста, ознакомьтесь со списком возможных ошибок, их причин и возможности решения.
Для просмотра примера раскройте список
title | Список ошибок и их решение |
---|
Ошибка
Причины
Решение
Response: {"result":"ERROR","error_message":"Account error"}
Ваш IP адрес не добавлен в наш белый список.
Обратитесь в тех поддержку для добавления вашего IP в белый список.
Данный функционал вам не подключен.
Обратитесь в тех поддержку для активации функционала.
Запрос отправлен не на нужную ссылку.
Рекомендуем сверить ссылку для отправки запроса с указаной в нужном разделе документации.
Response: {"result":"ERROR","error_message":"Card token not found for current client"}
Отправка запроса по CARD_TOKEN отключена для данного API ключа так как CARD_TOKEN был получен на другом ключе.
Обратитесь в тех поддержку для решения данной ситуации.
Response: {"result":"ERROR","error_message":"Incorrect hash"}
Неверно сформирована зашифрованная подпись.
Проверьте верность сформированной подписи. Если ошибку не нашли обратитесь в тех поддержку.
Добавлены параметры, которые не входят в данный запрос.
Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.
Запрос был отправлен не с того API ключа по которому был получен RC_TOKEN
Рекомендуем заменить API ключ на тот, по которому был получен RC_TOKEN
Response: {"result":"ERROR","error_message":"Empty action"}
Параметр action
заполнен не верно, пуст, или не на первом месте в списке параметров запроса.
Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.
Response: {"result":"ERROR","error_message":"Order already exists"}
Значение order_id
должно быть уникальным. Данная ошибка говорит о том, что у вас уже был использован такой order_id
.
Заменить значение order_id
на новое уникальное.
Response: {"result":"ERROR","error_message":"Recurring not supported"}
Токен больше не активен по причине завершения срока действия карты, блокировки карты, или блокировки токена.
Рекомендуем плательщику провести провести повторную оплату/верификацию для получения нового токена. Токен по которому была получена данная ошибка необходимо удалить из вашей базы данных, использовать его для списаний больше невозможно по причине блокировки.
Response: {"result":"ERROR","error_message":"Duplicate request"}
За одну минуту в систему вами было отправлено несколько одинаковых запросов.
Рекомендуем проверить ваш механизм отправки запросов на наличие задвоения.
Response: {"result":"ERROR","error_message":"Incorrect card_token value"}
Запрос был отправлен менее чем через 10 минут после получения токена.
Рекомендуем настроить отправку запросов минимум через 10 минут после получения токена. Запрос по которому получена эта ошибка необходимо повторить.
В параметр card_token
внесено неверное значение.
Рекомендуем проверить верность внесенных данных в поле card_token
полученного из коллбека ранее. Запрос по которому получена эта ошибка необходимо повторить.
Response: {"result":"ERROR","error_message":"Not found card token"}
Запрос был отправлен менее чем через 10 минут после получения токена.
Рекомендуем настроить отправку запросов минимум через 10 минут после получения токена. Запрос по которому получена эта ошибка необходимо повторить.
В параметр card_token
внесено неверное значение.
Рекомендуем проверить верность внесенных данных в поле card_token
полученного из коллбека ранее. Запрос по которому получена эта ошибка необходимо повторить.
Info |
---|
Цей функціонал буде активовано після вашого запиту в груповому чаті. |
Зміст
Table of Contents | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Опис
Регулярний платіж дозволяє робити списання коштів без участі платника.
В запиті використовується раніше збережена картка у вигляді зашифрованого CARD_TOKEN, який можна отримати при першій транзакції по картці.
Вимоги
Include Page | ||||
---|---|---|---|---|
|
API параметри
HTTP METHOD: POST
API ENDPOINT: https://secure.platononline.com/post-unq/
Параметр | Значення | Опис | Особливості | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Код платіжного метода | ||||||||||||||
| String | API ключ мерчанта | Ключ надається на пошту мерчанту | |||||||||||||
| String | ID оплати в системі мерчанта | Max 32 символи | |||||||||||||
| Number | Сума оплати |
| |||||||||||||
|
| Валюта |
| |||||||||||||
| String | Опис | Max 255 символів | |||||||||||||
| String | Токен картки |
| |||||||||||||
| String | Пошта платника |
| |||||||||||||
| Number | IP-адрес платника | В форматі "ХХХ.ХХХ.ХХХ.ХХХ"
| |||||||||||||
| String | Посилання куди перейде платник після проби оплати (успішної чи невдалої) | ||||||||||||||
|
| Ознака регулярної оплати | ||||||||||||||
| String | Контрольний підпис |
| |||||||||||||
|
| Включити асинхронний режим | В асинхронному режимі обов'язкове використання коллбеків. | |||||||||||||
| String | Додатковий платіжний канал | Дозволяє відправити оплати на інший банківський термінал | |||||||||||||
| String | Ім'я платника | Max 32 символи без пробілів | |||||||||||||
| String | Прізвище платника | Max 32 символи без пробілів | |||||||||||||
| String | Адреса платника | Max 256 символів | |||||||||||||
| String | Країна платника | В форматі "ХХ" | |||||||||||||
| String | Штат платника | В форматі "ХХ" | |||||||||||||
| String | Місто платника | Max 32 символи | |||||||||||||
| String | Поштовий індекс платника | Max 32 символи | |||||||||||||
| Number | Номер телефону платника | В форматі “380XXXXXXXXX” | |||||||||||||
| String | Номер електронного гаманця платника | Поле обов'язкове для типів бізнесу пов'язаних з віртуальними активами |
Приклад запиту
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Info |
---|
Тестування
В цілях тестування використовуйте card_token
отриманий з коллбека успішної транзакції по одному з вказаних методів:
IE оплата карткою
Верифікація картки
C2A оплата
Виплата на картку по повному номеру картки
Перевірка платежів
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Callback
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Синхронний режим
Стандартний режим. Передавати async = N
не потрібно.
Асинхронний режим
Цей режим активується при передачі async = Y
. В цьому режимі обов'язково необхідно використовувати callback.
Include Page | ||||
---|---|---|---|---|
|
Протерміновані токени
Note | ||
---|---|---|
Якщо у відповіді на запит ви отримали одну з вказаних нижче помилок, вам необхідно видалити цей протермінований токен:
| Рекомендуем обратиться в тех саппорт Platon для проверки причины. | Ситуация требует внимания сотрудников Platon. | Рекомендуем обратиться в тех саппорт Platon для проверки причины.
Warning |
---|
Ці |
Tip |
---|
Необхідно отримати новий |
Помилки запитів
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|