Info |
---|
Этот функционал будет активирован после вашего запроса в групповом чате. Также обязательно сообщите IP адреса, с которых будут отправляться запросы для добавления в белый список. |
Note |
---|
Ваш сайт должен работать по схеме HTTPS и поддерживать протокол TLS 1.2. |
Table of Contents |
---|
Описание:
Регулярный платеж позволяет проводить списание без участия плательщика.
В запросе используется ранее сохраненная карта в виде зашифрованого CARD_TOKEN, который можно получить из callback при первой Оплата картой или Верификации карты.
Дополнительно рекомендуем ознакомиться с разделом Особенности токенов
Обязательные требования к сайту:
Указать договор публичной оферты
Разместить логотипы платежных систем Visa и Mastercard
Добавить логотипы PSP Platon
API Endpoint (cсылка для отправки запросов):
Запрос необходимо отправлять с сервера.
Code Block |
---|
https://secure.platononline.com/post-unq/ |
Описание параметров запроса:
Параметр
Значение
Описание
Особенности
Обязательно
action
SALE
Код платежного метода
Только одно значение
Да
async
"Y" или "N"
Включить асинхронный режим
В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение "N"
Нет
channel_id
String
Дополнительный платежный канал
Позволяет отправить платежи на другой банковский терминал
Нет
client_key
String
API ключ мерчанта
Ключ предоставляется на почту мерчанту
Да
order_id
String
ID платежа в системе мерчанта
Max 32 символа
Да
order_amount
Number
Сумма платежа
Tip |
---|
Верный вариант 1000.00 |
Warning |
---|
Неверные варианты 1000 |
Да
order_currency
UAH
Валюта платежа
Info |
---|
Оплата возможна только в национальной валюте гривне |
Да
order_description
String
Описание платежа
Max 255 символов
Да
card_token
String
Токен карты
card_token из коллбека первичной транзакции
Да
payer_first_name
String
Имя плательщика
Max 32 символа без пробелов
Нет
payer_last_name
String
Фамилия плательщика
Max 32 символа без пробелов
Нет
payer_address
String
Адрес плательщика
Max 256 символа
Нет
payer_country
String
Страна плательщика
В формате "ХХ"
2 символа
Укажите "NA", если нет данных
Нет
payer_state
String
Штат плательщика
В формате "ХХ"
2 символа
Укажите "NA", если нет данных
Нет
payer_city
String
Город плательщика
Max 32 символа
Укажите "NA", если нет данных
Нет
payer_zip
String
Почтовый индекс плательщика
Max 32 символа
Укажите "NA", если нет данных
Нет
payer_email
String
Почта плательщика
Info |
---|
Указать значение из первоначального запроса на оплату, когда был получен токен. Оставить пустое значение, если параметр был без значения. |
Нет
payer_phone
Number
Номер телефона плательщика
В формате “380XXXXXXXXX”
Max 32 символа
Нет
payer_ip
Number
IP-адрес плательщика
В формате "ХХХ.ХХХ.ХХХ.ХХХ"
Да
customer_wallet
String
Номер електронного кошелька пользователя
Поле обязательно для типов бизнеса связаных с виртуальными активами
Нет
term_url_3ds
String
Ссылка по которой будет отправлен клиент после успешной оплаты
Max 255 символов
Да
auth
"Y" или "N"
"Y" или "N" (по умолчанию "N")
Нет
hash
String
Контрольная подпись
Code Block | ||
---|---|---|
| ||
md5(
strtoupper(
strrev(payer_email).
client_pass.
strrev(card_token)
)
) |
Info |
---|
Если при первоначальном запросе на оплату не был указан email, то следует указать пустое значение для email. |
Да
Примеры запроса:
Для просмотра примера раскройте список
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Iframe | ||||||||
---|---|---|---|---|---|---|---|---|
|
Тестирование:
В целях тестирования используйте CARD_TOKEN полученный из коллбека при успешной транзакции с использованием наших тестовых реквизитов:
Дебагинг недоставленных Callback:
С целью дебагинга работы вашего сервера на ошибки получения Callback можем предоставить вам телеграм бот, куда будут поступать тело недоставленных вам Callback и информация об HTTP статусе.
Для настройки телеграм бота обратитесь в ваш груповой чат с просьбой подключить его вам.
Получение статуса транзакции в Callback и Response:
Tip |
---|
Ответы будут поступать с наших IP: |
Info |
---|
Для получения коллбеков отправьте ссылку на ваш обработчик в ваш групповой чат. Ссылка для коллбеков прописывается на стороне Platon. |
После отправки коллбека в ответ Platon должен получить код HTTP 200 OK. Если коллбек не удалось доставить будет произведено до 5 попыток повторной отправки в течение 60 секунд.
Опциональные варианты активация которых происходит по вашему обращению в групповом чате:
Коллбеки в формате JSON
Basic Authorization
Отправка Callback на несколько адресов (по умолчанию на один)
Синхронный режим:
Для просмотра примера раскройте список
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"
"recurring_token":"01e00c2b39bb3b933723307c442efd02",
"card_token":"8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2"
} |
Параметр
Описание
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
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 | 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' => '********************************',
) |
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
Зашифрованная подпись для проверки достоверности коллбека
Асинхронный режим:
Данный режим активируется при передаче ‘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
Зашифрованная подпись для проверки достоверности коллбека
Дополнительная проверка оплаты:
Для получения информации об оплате в случае, если ваша система не смогла принять Callback, Response или по другой причине, можно воспользоваться дополнительными API запросами проверки:
Ошибки запросов:
В ходе проведения запрос вы можете получить разные ошибки. Пожалуйста, ознакомьтесь со списком возможных ошибок, их причин и возможности решения.
Для просмотра примера раскройте список
title | Список ошибок и их решение |
---|
Ошибка
Причины
Решение
Response: {"result":"ERROR","error_message":"Account error"}
Ваш IP адрес не добавлен в наш белый список.
Обратитесь в тех поддержку для добавления вашего IP в белый список.
Данный функционал вам не подключен.
Обратитесь в тех поддержку для активации функционала.
Запрос отправлен не на нужную ссылку.
Рекомендуем сверить ссылку для отправки запроса с указаной в нужном разделе документации.
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
|