Skip to main content

Host-to-Host Integration for a Merchant-Owned Payment Form

If you require direct H2H integration, please contact your manager to discuss the terms

Host-to-host integration is used when the payment form is located on the merchant's website. The checkout script may be connected to the form in order to generate a cryptogram and collect payer data

https://static.wata.pro/checkout.js

Subscriptions

You can only create a subscription through the API. Currently, getting subscription information is only available in the "Subscriptions" section of the merchant account.

Use subscription functionality responsibly, especially for promotional periods. Ensure that the post-promo price is stated explicitly. Changing the subscription price can lead to chargebacks. If the terms are hidden deep within the Terms and conditions, or if other dark patterns are used, the customer may have grounds to dispute the transaction.

Merchants are not refunded the commission for chargebacks, and penalties may also be imposed. If there are a high number of disputed transactions, the terminal may be disconnected and the merchant's funds frozen for up to 180 days.


Bank Card Payment

POST /api/h2h/payments/card-crypto

This method is used to create a bank card payment transaction.

Request Parameters

Contact your manager to find out how to activate the subscription feature

ParameterTypeComment
amountNumberPayment amount. Up to 2 digits after the decimal point are allowed for kopecks or cents. Example: 1188.00
currencyStringPayment currency (RUB, USD, EUR)
orderIdStringUnique order identifier in the merchant system
descriptionStringOrder description
ipStringPayer IP address
returnUrlStringPage address where the payer is returned after payment
emailStringPayer email address. Required for an international terminal and subscriptions
subscriptionObjectUsed only for subscription functionality, which must be enabled on the terminal
subscription.periodNumberCharge frequency. For example, 2 week means once every two weeks, and 3 month means quarterly
subscription.intervalStringInterval between charges. Week means weekly, month means monthly
subscription.maxPeriodsNumberNumber of subsequent charge periods, excluding the first one. For example, if you sold an annual subscription with monthly billing, specify 11 periods because the first one is covered by the current payment
subscription.amountNumberCharge amount. If omitted, the amount from the request is used. Fill this field when using a promo period. For example, the first month is 39 RUB and subsequent months are 99 RUB
subscription.startDateDateSubscription charge date. It must be in the future. For example, if the customer first paid on January 9 and your regular charges always occur on the 1st day of the month, specify February 1. Another example: a short promo period, such as 3 days for 1 RUB, followed by 1000 RUB per month
deviceDataObjectPayer device data. You can collect it by connecting checkout.js to the payment page
deviceData.browserAcceptHeaderStringValue of the HTTP Accept header
deviceData.browserLanguageStringBrowser locale
deviceData.browserJavaEnabledBooleanWhether Java is available
deviceData.browserJavaScriptEnabledBooleanWhether JavaScript is available
deviceData.browserColorDepthNumberBrowser color depth
deviceData.browserScreenHeightNumberScreen height in pixels
deviceData.browserScreenWidthNumberScreen width in pixels
deviceData.challengeWindowWidthNumberBrowser window width in pixels
deviceData.challengeWindowHeightNumberBrowser window height in pixels
deviceData.browserTZNumberUser time zone offset from UTC, for example 3
deviceData.browserTZNameStringUser time zone as a string, for example UTC+3
deviceData.browserIpStringPayer IP address
deviceData.browserUserAgentStringValue of the HTTP User-Agent header
cardCryptoStringPayer card cryptogram. You can collect it by connecting checkout.js to the payment page

Response parameters

ParameterTypeComment
transactionIdUUIDTransaction identifier in the WATA system
transactionStatusStringTransaction status (Pending, Paid, Declined)
kindStringTransaction kind: Payment for payment, Refund for refund
errorCodeStringError code for an unsuccessful request. See the error code reference
errorDescriptionStringError description for an unsuccessful request
threeDsDataObjectData for 3DS authentication. See the explanation below
threeDsData.urlStringAddress where the payer must be sent to enter the 3DS authentication code
threeDsData.methodStringHTTP method used to send the form
threeDsData.parametersObject3DS parameters
threeDsData.parameters.propertyNameString3DS parameter value

threeDsData Parameters

Depending on the values received in this object, either redirect the payer browser to the url value if method is GET, or create a hidden HTML form on the merchant page with parameters from the parameters object and automatically submit it to url using method if the method is not GET. The parameters object can contain different values, so it is recommended to create an input element for each value in a loop.

HTML form example

<html>
<head>
<title></title>
</head>
<body onload="setTimeout(document.forms['form'].submit(), 10000)">
<form name='form' action='{url}' method='{method}'>
<input type='hidden' name='creq' value='{creq}'>
<input type='hidden' name='threeDSSessionData' value='{threeDsSessionData}'>
</form>
</body>
</html>

SBP Payment

This method is used to create a payment transaction through the Bank of Russia Faster Payments System (SBP).

POST /api/h2h/payments/sbp

Request Parameters

Contact your manager to find out how to activate the subscription feature

ParameterTypeComment
amountNumberPayment amount. Up to 2 digits after the decimal point are allowed for kopecks. Payments are accepted only in Russian rubles. Example: 1188.00
orderIdStringUnique order identifier in the merchant system
descriptionStringOrder description
ipStringPayer IP address
returnUrlStringPage address where the payer is returned after payment
emailStringPayer email address. Required for subscriptions
firstNameStringPayer first name
lastNameStringPayer last name
subscriptionObjectUsed only for subscription functionality, which must be enabled on the terminal
subscription.periodNumberCharge frequency. For example, 2 week means once every two weeks, and 3 month means quarterly
subscription.intervalStringInterval between charges. Week means weekly, month means monthly
subscription.maxPeriodsNumberNumber of subsequent charge periods, excluding the first one. For example, if you sold an annual subscription with monthly billing, specify 11 periods because the first one is covered by the current payment
subscription.amountNumberCharge amount. If omitted, the amount from the request is used. Fill this field when using a promo period. For example, the first month is 39 RUB and subsequent months are 99 RUB
subscription.startDateDateSubscription charge date. It must be in the future. For example, if the customer first paid on January 9 and your regular charges always occur on the 1st day of the month, specify February 1. Another example: a short promo period, such as 3 days for 1 RUB, followed by 1000 RUB per month
deviceDataObjectPayer device data. You can collect it by connecting checkout.js to the payment page
deviceData.browserAcceptHeaderStringValue of the HTTP Accept header
deviceData.browserLanguageStringBrowser locale
deviceData.browserJavaEnabledBooleanWhether Java is available
deviceData.browserJavaScriptEnabledBooleanWhether JavaScript is available
deviceData.browserColorDepthNumberBrowser color depth
deviceData.browserScreenHeightNumberScreen height in pixels
deviceData.browserScreenWidthNumberScreen width in pixels
deviceData.challengeWindowWidthNumberBrowser window width in pixels
deviceData.challengeWindowHeightNumberBrowser window height in pixels
deviceData.browserTZNumberUser time zone offset from UTC, for example 3
deviceData.browserTZNameStringUser time zone as a string, for example UTC+3
deviceData.browserIpStringPayer IP address
deviceData.browserUserAgentStringValue of the HTTP User-Agent header

Response parameters

ParameterTypeComment
transactionIdUUIDTransaction identifier in the WATA system
transactionStatusStringTransaction status (Created, Pending, Paid, Declined)
kindStringTransaction kind: Payment for payment, Refund for refund
sbpLinkStringSBP payment link
errorCodeStringError code for an unsuccessful request. See the error code reference
errorDescriptionStringError description for an unsuccessful request

T-Pay Payment

This method is used to create a payment transaction through T-Pay by T-Bank.

POST /api/h2h/payments/tpay

Request Parameters

ParameterTypeComment
amountNumberPayment amount. Up to 2 digits after the decimal point are allowed for kopecks. Payments are accepted only in Russian rubles. Example: 1188.00
orderIdStringUnique order identifier in the merchant system
descriptionStringOrder description
ipStringPayer IP address
returnUrlStringPage address where the payer is returned after payment
emailStringPayer email address
subscriptionObjectUsed only for subscription functionality, which must be enabled on the terminal
subscription.periodNumberCharge frequency. For example, 2 week means once every two weeks, and 3 month means quarterly
subscription.intervalStringInterval between charges. Week means weekly, month means monthly
subscription.maxPeriodsNumberNumber of subsequent charge periods, excluding the first one. For example, if you sold an annual subscription with monthly billing, specify 11 periods because the first one is covered by the current payment
subscription.amountNumberCharge amount. If omitted, the amount from the request is used. Fill this field when using a promo period. For example, the first month is 39 RUB and subsequent months are 99 RUB
subscription.startDateDateSubscription charge date. It must be in the future. For example, if the customer first paid on January 9 and your regular charges always occur on the 1st day of the month, specify February 1. Another example: a short promo period, such as 3 days for 1 RUB, followed by 1000 RUB per month
deviceDataObjectPayer device data. You can collect it by connecting checkout.js to the payment page
deviceData.browserAcceptHeaderStringValue of the HTTP Accept header
deviceData.browserLanguageStringBrowser locale
deviceData.browserJavaEnabledBooleanWhether Java is available
deviceData.browserJavaScriptEnabledBooleanWhether JavaScript is available
deviceData.browserColorDepthNumberBrowser color depth
deviceData.browserScreenHeightNumberScreen height in pixels
deviceData.browserScreenWidthNumberScreen width in pixels
deviceData.challengeWindowWidthNumberBrowser window width in pixels
deviceData.challengeWindowHeightNumberBrowser window height in pixels
deviceData.browserTZNumberUser time zone offset from UTC, for example 3
deviceData.browserTZNameStringUser time zone as a string, for example UTC+3
deviceData.browserIpStringPayer IP address
deviceData.browserUserAgentStringValue of the HTTP User-Agent header

Response parameters

ParameterTypeComment
transactionIdUUIDTransaction identifier in the WATA system
transactionStatusStringTransaction status (Created, Pending, Paid, Declined)
kindStringTransaction kind: Payment for payment, Refund for refund
tPayLinkStringT-Pay payment link
errorCodeStringError code for an unsuccessful request. See the error code reference