Skip to main content

WATA Payment Form

POST /api/h2h/links/

The most popular option, which is easier for merchants to integrate. The payment form is hosted by WATA and opens in a separate window or within an iframe on the merchant’s website or app. The WATA payment form may offer several payment methods, such as card payment and payment via a payment gateway, depending on the terminal provided. The payment link may be single-use, becoming invalid after the first successful payment, or multi-use, becoming invalid after a specified period of time.

It is not recommended that payment processing logic be implemented based on the payment link identifier. A payment link is a temporary object that is deleted after its expiry date and time (expirationDateTime). To process a payment, use the orderId — unique order identifier in your system.

A payment link is generated for the terminal whose access token was specified in the request header.

Contact your manager to learn how to enable subscription functionality.

Request parameters

ParameterTypeComment
amountNumberPayment amount. A maximum of 2 decimal places is allowed (for kopecks or cents). Example: 1188.00. Minimum value: 10 RUB, 1 USD, 1 EUR. Maximum allowed value: 999999.99. The actual payment amount limit is set by the gateway; ask your manager for details
currencyStringPayment currency (RUB, EUR, USD)
descriptionStringFree-form order description
orderIdStringUnique order identifier or number in the merchant system. This is the most important parameter for finding a transaction or refund operation
successRedirectUrlStringThe URL to which the payer is redirected after successful order payment
failRedirectUrlStringThe URL to which the payer is redirected after unsuccessful order payment
expirationDateTimeDatePayment link lifetime. By default, it is valid for 3 days. Minimum lifetime: 10 minutes. Maximum lifetime: 30 days
isArbitraryAmountAllowedBooleanAllows an arbitrary payment amount: true or false. The value from amount pre-fills the amount input field
arbitraryAmountPromptsObjectSuggested payment amounts displayed on the payment form. Can be used only when isArbitraryAmountAllowed=true. Values are shown as hints under the input field. Example array: [100, 300, 500]. Values cannot be less than amount. Recommended number of hints: 3-4, maximum: 6. Horizontal scrolling is enabled if the hints exceed the row width
typeStringPayment link type. One-time link: OneTime; reusable link: ManyTime. If omitted, a one-time link is created
subscriptionObjectUsed only for subscription functionality, which must be enabled on the terminal
subscription.periodNumberBilling frequency: For example, '2 weeks' means once every two weeks, and '3 months' means once every three months
subscription.intervalStringInterval between charges. Week means weekly, month means monthly
subscription.maxPeriodsNumberNumber of recurring billing cycles, 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.startDateDateThe date of the first subscription charge (must be in the future). 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

Response parameters

ParameterTypeComment
idUUIDPayment link identifier in the WATA system. This is not the transaction UUID
amountStringPayment amount. Payment amount. A maximum of 2 decimal places is allowed (for kopecks or cents). Example: 1188.00
currencyStringPayment currency (RUB, EUR, USD)
statusStringPayment link status. Opened means open and valid; Closed means payment by the link is closed
urlStringPayment link address
terminalNameStringName of the merchant terminal where the payment link was created
terminalPublicIdUUIDUnique merchant terminal identifier
creationTimeDateDate and time when the payment link was created, in UTC
typeStringPayment link type. One-time link: OneTime; reusable link: ManyTime
orderIdStringUnique order identifier or number in the merchant system
descriptionStringFree-form order description
expirationDateTimeDatePayment link lifetime. By default, it is valid for 3 days. Minimum lifetime: 10 minutes. Maximum lifetime: 30 days
isArbitraryAmountAllowedBooleanAllows an arbitrary payment amount: true or false. The value from amount pre-fills the amount input field
arbitraryAmountPromptsObjectSuggested payment amounts displayed on the payment form. Example: [100, 300, 500]
successRedirectUrlStringThe URL to which the payer is redirected after successful order payment
failRedirectUrlStringThe URL to which the payer is redirected after unsuccessful order payment

Request and response example for creating a payment link

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.


GET /api/h2h/links/:id

Request parameters

ParameterTypeComment
idUUIDPayment link identifier. This is not a transaction identifier

Response parameters

ParameterTypeComment
idUUIDPayment link identifier in the WATA system. This is not the transaction UUID
amountStringPayment amount. A maximum of 2 decimal places is allowed (for kopecks or cents). Example: 1188.00
currencyStringPayment currency (RUB, EUR, USD)
statusStringPayment link status (Opened, Closed)
urlStringPayment link address
terminalNameStringName of the merchant terminal where the payment link was created
terminalPublicIdUUIDUnique merchant terminal identifier
creationTimeDateDate and time when the payment link was created, in UTC
typeStringPayment link type. One-time link: OneTime; reusable link: ManyTime
orderIdStringUnique order identifier or number in the merchant system
expirationDateTimeDatePayment link lifetime
isArbitraryAmountAllowedBooleanAllows an arbitrary payment amount: true or false
arbitraryAmountPromptsObjectSuggested payment amounts displayed on the payment form. Example: [100, 300, 500]
descriptionStringFree-form order description
successRedirectUrlStringThe URL to which the payer is redirected after successful order payment
failRedirectUrlStringThe URL to which the payer is redirected after unsuccessful order payment

Request and response example for getting a link by UUID


GET /api/h2h/links/?{conditions}

The request searches for payment links that match specified conditions. For example: payment amount from 1000.01 to 2999.99 RUB and creation date from February 1, 2027 to March 2, 2027.

Important: a payment link is stored in WATA only until its lifetime expires (expirationDateTime). If you did not change the value, it is valid for 3 days and then deleted.

Request parameters

ParameterTypeComment
orderIdStringUnique order identifier in the merchant system
creationTimeFromDateCreation date from
creationTimeToDateCreation date to
amountFromNumberPayment amount from
amountToNumberPayment amount to
currenciesStringPayment currency
statusesStringPayment link status: Opened (valid), Closed (not valid)
sortingStringField used to sort the list of links in the response. Available values: orderId, creationTime, amount. Add the desc suffix to the field name for descending order
skipCountNumberNumber of records to skip. Used for pagination, for example when you need to receive more than 1000 links. If skipCount=2000, the first 2000 links are skipped and the response will start with the 2001st link
maxResultCountNumberNumber of records to return. Default: 10, maximum: 1000

Response parameters

ParameterTypeComment
itemsObjectList of found payment links
items.idUUIDPayment link identifier in the WATA system. This is not the transaction UUID
items.amountStringPayment amount. A maximum of 2 decimal places is allowed (for kopecks or cents). Example: 1188.00
items.currencyStringPayment currency (RUB, EUR, USD)
items.statusStringPayment link status (Opened, Closed)
items.urlStringPayment link address
items.terminalNameStringName of the merchant terminal where the payment link was created
items.terminalPublicIdUUIDUnique merchant terminal identifier
items.creationTimeDateDate and time when the payment link was created, in UTC
items.typeStringPayment link type. One-time link: OneTime; reusable link: ManyTime
items.orderIdStringUnique order identifier or number in the merchant system
items.expirationDateTimeDatePayment link lifetime
items.isArbitraryAmountAllowedBooleanAllows an arbitrary payment amount: true or false
items.arbitraryAmountPromptsObjectRecommended amount hints on the payment form. Example: [100, 300, 500]
totalCountNumberTotal number of records

Request and response example for searching payment links


Technical Documentation