# Creating a payment (form)

{% hint style="info" %}
If your website was created using CMS please take a look at the list of our [modules](https://help.unitpay.ru/en/modules).
{% endhint %}

To initiate a payment through a single form of payment, you just need to direct the user to a special URL and transfer a number of required parameters.

## pay

<mark style="color:blue;">`GET`</mark> `https://unitpay.ru/pay/PUBLICKEY?sum&account&desc&signature`

The request is used to initialize a payment

#### Path Parameters

| Name      | Type   | Description                                                        |
| --------- | ------ | ------------------------------------------------------------------ |
| publickey | string | public key. You can find it under the Settings tab of your project |

#### Query Parameters

| Name      | Type   | Description                                                                                                                                                                                                                                                                                            |
| --------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| backurl   | string | The user's return address from the payment form without making a purchase; the project address is used by default. The project domain must be used in the address. Examples: <https://redirect.\\><project domain>/?someParams", "https\://\<project domain>/redirect/                                 |
| locale    | string | It is mandatory to specify the payment form language, acceptable values: ru, en. By default, the form language is determined based on the country that the user's IP address belongs to                                                                                                                |
| currency  | string | <p>The order currency according to ISO 4217 (RUB, UAH, BYN, EUR, USD etc. Currency codes <https://help.unitpay.ru/v/master/book-of-reference/payment-system-codes>). <br>If the payment system does not support the required currency, the amount will be converted to the payment system currency</p> |
| signature | string | It protects you from hackers: substituting the description or price of the order, placing a link to the payment on the resources of fraudsters.                                                                                                                                                        |
| desc      | string | Order description. It is used only for informing when making a payment                                                                                                                                                                                                                                 |
| account   | string | Subscriber ID in your system (for example, email or order number).                                                                                                                                                                                                                                     |
| sum       | number | Payment amount. In rubles by default. See the additional currency parameter                                                                                                                                                                                                                            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

**Example:**

```
https://unitpay.ru/pay/111111-11111?sum=100&account=222111&desc=Online%20course&signature=2c38bb3114b2f02222ee35f6b60c6bbe628ad31bed59633787204ae59659a02e
```

\*\*\*\*

**PUBLIC KEY**: The value of the project public key can be found on the project page in the special Payment Form section of your personal account.

<figure><img src="https://244174165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9Y_k8Gr-WxeECFRelw-887967055%2Fuploads%2FOVsuWLFpnVeXtBHSIxVA%2Fimage.png?alt=media&#x26;token=8c9beb7e-7a18-4cf6-9dac-8e8314206918" alt=""><figcaption></figcaption></figure>

**Request digital signature**

For additional security of your payments, we perform mandatory verification of the digital signature when creating a payment. The signature guarantees protection against the substitution of the transmitted values (e.g., changing the payment amount or order number).

|               | **Value** | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **signature** | line      | <p>Digital signature. It is formed as sha256( account + "{up}" + currency + "{up}" + desc + "{up}" + sum + "{up}" + secretKey),<br>where <strong>sha256</strong> is the hashing method;<br> <strong>{up}</strong> is the parameter separator in the hash function;<br> <strong>account, sum, currency, desc</strong> are the payment initialization parameters described above;<br> <strong>secretKey</strong> is the secret key of the project (available in your personal account);</p><p><strong>Important Note</strong>. If you do not transmit <strong>currency</strong> to the payment form, this parameter should not be used in signature generation.</p> |

**Default payment method**

You can define the payment system that will be used for the user by default. To do this, add parameter / **system\_code** corresponding to the [alphabetic code of the payment system](https://help.unitpay.ru/en/book-of-reference/payment-system-codes) at the end of the URL of your payment form (for example: [https://unitpay.money/pay/demo\\](https://unitpay.money/pay/demo/)).

**Return to the store's website**

After initializing the payment, the user goes to the receipt page where the payment status is tracked. After users have received a successful or error status, they are redirected to the partner's site (Fail URL/Success URL fields in the personal account settings) with GET parameters:

|           | **Value** | **Description**                                                                      |
| --------- | --------- | ------------------------------------------------------------------------------------ |
| account   | text      | Subscriber ID in the partner's system (for example, the subscriber's login or email) |
| paymentId | number    | Payment number in the UnitPay system                                                 |
