Перейти к основному содержимому

Общая информация

Принцип работы

  • Программный интерфейс построен по принципам REST, на основе спецификации JSON-API.
  • При отправке запросов необходимо отправлять HTTP заголовок Content-Type=application/json
  • Тайм-аут на получение ответа от API: 1 минута

Для запросов с телом необходимо передавать заголовок:

Content-Type: application/json

Окружения

Production

https://api.wata.pro/api/h2h/

Sandbox

https://api-sandbox.wata.pro/api/h2h/

Аутентификация

Для доступа к API используется Bearer аутентификация на основе JWT токена (далее access token). Токен необходимо передавать в каждом требующем аутентификации запросе в HTTP заголовке Authorization

Токен передается в каждом защищенном запросе в HTTP-заголовке:

Authorization: Bearer <access_token>

Access token можно получить в личном кабинете мерчанта:

  1. Получите приглашение от вашего личного менеджера по email
  2. Перейдите по ссылке из письма, чтобы задать пароль
  3. После создания пароля авторизуйтесь в личном кабинете мерчанта (https://merchant.wata.pro/login)
  4. В разделе «Терминалы» нажмите на плашку с терминалом
  5. Справа откроется панель с настройками, в ней нужно создать токены. Всего можно создать от 1 до 5 токенов. Там же возможно удалить ненужные токены
  6. Придумайте название и выберите время жизни токена. Время жизни access token составляет от 1 до 12 месяцев
  7. После истечения этого времени запросы к API начнут возвращать 401 HTTP статус код. Позаботьтесь о создании напоминания, чтобы заблаговременно перевыпустить access token в личном кабинете и заменить у себя в системе.

Личный кабинет

Важно:

  • Храните access token в безопасном месте
  • WATA не хранит access token в открытом виде
  • Восстановить существующий token нельзя
  • При необходимости необходимо сгенерировать новый token
  • Выбирайте осознанно срок жизни access token — от 1 до 12 месяцев
  • После истечения срока действия API будет возвращать HTTP 401.

Тестирование

  • Для тестирования используется тестовая среда:
https://api-sandbox.wata.pro/api/h2h/
  • Тестовый личный кабинет:
https://merchant-sandbox.wata.pro/
  • Тестовая среда работает отдельно от боевой. Чтобы получить доступ в тестовый личный кабинет и терминал, обратитесь к своему менеджеру. Он запросит для вас настройки песочницы и выдаст отдельный логин и пароль. Боевые учётные данные для входа в тестовую среду не подходят.
  • Процесс получения Access token для тестирования аналогичен процессу аутентификации в боевой среде

Карты для тестирования

ТипНомер картыРезультат оплаты
Карта МИР без 3DS2200 0000 2222 2222Success
Карта МИР без 3DS2203 0000 0000 0043Declined
Карта МИР с 3DS2200 0000 0000 0004Success
Карта МИР с 3DS2202 2022 0220 2200Declined
Карта VISA без 3DS4000 0000 0000 3055Success
Карта VISA без 3DS4111 1111 1111 1111Declined
Карта VISA с 3DS4242 4242 4242 4242Success
Карта VISA с 3DS4012 8888 8888 1881Declined

Ограничение частоты запросов

Для стабильной работы сервиса и защиты API от polling-нагрузки введено ограничение частоты GET-запросов к API. Для получения статуса, ориентируйтесь на гарантированные webhook уведомления со сроком доставки до 32 часов.

Ограничиваются только следующие запросы

GET /api/h2h/links
GET /api/h2h/links/{id}
GET /api/h2h/v2/transactions
GET /api/h2h/transactions/{id}
GET /api/h2h/finance/balance

Все остальные методы (POST, PUT и т.д.) и эндпоинты — без ограничений

Размер лимита

  • 1 GET-запрос раз в 30 секунд
  • Лимит считается отдельно для каждого клиента и каждого объекта

Как определяется объект

Links
• /links/{id} → лимит на конкретный id
• /links → общий лимит

Transactions
• /transactions/{id} → лимит на конкретную транзакцию
• /v2/transactions?orderId=… → лимит на указанный orderId
• /v2/transactions → общий лимит

Что происходит при превышении

  • Возвращается HTTP 429 (Too Many Requests)
  • В ответе указывается, через сколько секунд можно повторить запрос

Рекомендация

Для получения обновлений используйте webhooks. Polling-запросы предназначены только для редкой проверки состояния или fallback сценария


HTTP-статусы

КодЗначениеОписание
200OKЗапрос успешно обработан
400Некорректный запросДанные в запросе некорректны. Проверьте запрос, исправьте данные и повторите отправку
401Запрос не авторизованНе передан access-token или передан access-token с истекшим сроком действия, обновите access-token
403Доступ запрещенУ вас нет доступа в запрашиваемый эндпоинт
429Превышен лимит запросовПопробуйте отправить запрос через указанный в ответе интервал времени
500Ошибка сервераОбратитесь пожалуйста в техподдержку с описанием проблемы и указанием тела запроса

B случае получения 400-го кода возвращается ответ с детализацией ошибки в теле ответа.

Пример ответа с детализацией ошибки:

Response 400

{
"error":{
"code":null,
"message":"Ваш запрос недействителен!",
"details":"При проверке были обнаружены следующие ошибки - 'Amount' должно быть заполнено.",
"data":{

},
"validationErrors":[
{
"message":"'Amount' должно быть заполнено.",
"members":[
"amount"
]
}
]
}
}

Коды ошибок

КодОписание
Payment:PL_1001Некорректная сумма платежной ссылки (сумма слишком маленькая или слишком большая)
Payment:PL_1002Некорректная валюта платежной ссылки (создание ссылок в этой валюте запрещено)
Payment:PL_1003Платежная ссылка недоступна либо уже оплачена
Payment:CRY_1001Ошибка шифрования карточных данных
Payment:TRA_1001Некорректный формат карточных данных при создании транзакции
Payment:TRA_1002Некорректный номер карты при создании транзакции
Payment:TRA_1003Некорректный срок действия карты при создании транзакции
Payment:TRA_1004Некорректное значение CVV при создании транзакции
Payment:TRA_1005Некорректная сумма при создании транзакции
Payment:TRA_1006Некорректная валюта {currency}
Payment:TRA_1010Держатель карты обязателен для заполнения
Payment:TRA_1011Email плательщика обязателен для заполнения
Payment:TRA_1012Тип платежной системы карты не поддерживается
Payment:TRA_1013Данный способ оплаты не поддерживается (например, попытка оплаты по СБП, когда этот способ не включен у терминала)
Payment:TRA_1016Отрицательная выручка не настроена на терминале
Payment:TRA_1019Не получен ожидаемый ответ для вебхука предоплаты
Payment:TRA_1101Некорректная сумма возврата
Payment:TRA_1102Недостаточно средств на балансе терминала для возврата
Payment:TRA_1103Пока есть незавершенные возвраты по данной транзакции, невозможно создать еще один возврат
Payment:TRA_2001Данный тип карты не поддерживается шлюзом
Payment:TRA_2002Недостаточно средств
Payment:TRA_2004Подозрение на мошенничество
Payment:TRA_2006Отказ эмитента проводить онлайн-операцию
Payment:TRA_2007Карта потеряна
Payment:TRA_2009Отказ сети проводить операцию или неправильный CVV-код
Payment:TRA_2010Карта не предназначена для онлайн-платежей
Payment:TRA_2011Эмитент не найден
Payment:TRA_2012Отказ по желанию держателя карты
Payment:TRA_2013Ошибка на стороне эквайера — неверно сформирована транзакция
Payment:TRA_2014Неизвестный эмитент карты
Payment:TRA_2015Карта не предназначена для платежей
Payment:TRA_2017Карта украдена
Payment:TRA_2018Карта просрочена или неверно указан срок действия
Payment:TRA_2019Неверный PIN-код
Payment:TRA_2020Ограничение на карте
Payment:TRA_2021Транзакция не разрешена по карте
Payment:TRA_2022Превышена сумма по карте
Payment:TRA_2023Карта заблокирована из-за нарушений безопасности
Payment:TRA_2024Превышен лимит операций по карте
Payment:TRA_2999Невозможно провести платеж

Техническая документация