# Переводы

Отправка запросов, если не указано иное, осуществляется с заголовком

«Content‑Type: application/x‑www‑form‑urlencoded».

Порядок следования параметров в запросах не важен.&#x20;

Регистр символов в url‑адресах и параметрах запросов — важен.

Ответ на запрос передается в формате JSON, кодировка UTF‑8.

{% hint style="warning" %}
Ответы API сервиса могут содержать незадокументированные поля. При обработке ответов такие поля должны игнорироваться клиентским кодом.
{% endhint %}

### StartCreditSession <a href="#startcreditsession" id="startcreditsession"></a>

Запрос инициализации перевода. Выполняется перед перенаправлением пользователя на страницу платежного шлюза Payler.

**URL запроса:** [https://{host}.payler.com/cgapi/StartSession](about:blank)

**Доступно для:** cgapi

**Метод отправки запроса:** <mark style="color:green;background-color:green;">**`POST`**</mark>

**Параметры запроса:**

<table data-header-hidden><thead><tr><th width="150"></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>key</td><td>A..100</td><td>R</td><td>Идентификатор мерчанта. Выдается с параметрами доступа</td></tr><tr><td>password</td><td>A..100</td><td>R</td><td>Пароль мерчанта для проведения операций.<br>Выдается с параметрами доступа</td></tr><tr><td>order_id</td><td>A..100</td><td>R</td><td>Идентификатор перевода в системе мерчанта. Для каждого перевода (сессии) требуется использовать уникальный идентификатор.<br>Только печатные ASCII-символы</td></tr><tr><td>session_type</td><td>N1</td><td>O</td><td>Тип сессии относительно сохранения карточных данных. При сохранении карточных данных последующие переводы можно совершать просто выбором нужной карты. Если этот параметр равен 1, то нужно передавать также и customer_id. 0 — обычная страница перевода, без сохранения карточных данных,<br>1 — показать пользователю список сохранённых карт и возможность выбора из списка или ввода полных карточных данных для перевода на карту не из списка. По умолчанию — 0</td></tr><tr><td>customer_id</td><td>A..100</td><td>O</td><td>Идентификатор пользователя. Если параметр session_type равен 1, то на странице перевода будет возможность выбрать ранее сохранённую карту (для данного пользователя) или ввести новую. Генерируется мерчантом</td></tr><tr><td>amount</td><td>N</td><td>R</td><td>Сумма перевода в минимальной денежной единице (копейки, центы и т. д.)</td></tr><tr><td>product</td><td>A..256</td><td>O</td><td>Описание перевода.</td></tr><tr><td>template</td><td>A..100</td><td>O</td><td>Используемый шаблон страницы перевода, заданный мерчантом. При отсутствии используется шаблон «по умолчанию»</td></tr><tr><td>lang</td><td>A2</td><td>O</td><td>Предпочитаемый язык платёжной формы.<br>en — английский; ru — русский.<br>По умолчанию — ru</td></tr><tr><td>userdata</td><td>A..1000</td><td>O</td><td>Пользовательские данные. Можно передать в этой строке любую информацию, которую нужно сохранить вместе с переводом, а потом получить её с помощью метода <a href="../platezhi#_getadvancedstatus">GetAdvancedStatus</a></td></tr><tr><td>email</td><td>A..100</td><td>O</td><td>Адрес электронной почты пользователя</td></tr><tr><td>pay_page_param_*</td><td>A..100</td><td>O</td><td>Параметры для отображения на странице перевода. Можно передать любые параметры, начинающиеся с pay_page_param_, а потом отобразить их на странице оплаты. Для этого необходимо использовать шаблон страницы (см. параметр template)</td></tr><tr><td>pay_page_param_addtoreport3</td><td>A</td><td>O</td><td>При <a href="../../obshie-svedeniya/obshaya-informaciya#splitovanie-platezhei">сплитовании</a>:  суммы переводов для каждого получателя в минимальной денежной единице (копейки, центы и т. д.) через запятую</td></tr><tr><td>pay_page_param_addtoreport4</td><td>A</td><td>O</td><td>При <a href="../../obshie-svedeniya/obshaya-informaciya#splitovanie-platezhei">сплитовании</a>: ID получателей через запятую. Регистрируются через службу технической поддержки</td></tr></tbody></table>

**Параметры ответа:**

<table data-header-hidden><thead><tr><th width="171"></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>order_id</td><td>A..100</td><td>R</td><td>Идентификатор перевода в системе мерчанта. Соответствует переданному в запросе</td></tr><tr><td>amount</td><td>N</td><td>R</td><td>Сумма перевода в минимальной денежной единице (копейки, центы и т. д).</td></tr><tr><td>session_id</td><td>A..100</td><td>R</td><td>Идентификатор платёжной сессии</td></tr></tbody></table>

Пример ответа на успешный запрос:

```json
{
         "amount": 30000,
         "session_id": "b088175c-eca6-4317-aa84-74de5080ca20",
         "order_id": "d1434908-7260-483e-8254-fa43af1b835d"
}
```

### CreditGate <a href="#xjmk2u5otyk" id="xjmk2u5otyk"></a>

Перенаправление пользователя с сайта мерчанта на страницу формы оплаты на стороне шлюза. Выполняется после команды [StartCreditSession](#_startcreditsession). После заполнения пользователем полей формы, шлюз автоматически выполняет запрос к эмитенту.

Результатом обработки запроса является перечисление денежных средств на карту пользователя. После обработки запроса на стороне платежного шлюза пользователь будет перенаправлен на страницу с результатами операции, а через 3 секунды возвращен на сайт мерчанта.

**URL запроса:** [https://{host}.payler.com/cgapi/Credit](about:blank)

**Доступно для:** cgapi

**Метод отправки запроса:** <mark style="color:purple;background-color:purple;">**`GET`**</mark>

**Параметры запроса:**

<table data-header-hidden><thead><tr><th></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>session_id</td><td>A..100</td><td>R</td><td>Идентификатор платёжной сессии.<br>Содержится в ответе на запрос <a href="#_startcreditsession">StartCreditSession</a></td></tr></tbody></table>

После обработки запроса [CreditGate](#_xjmk2u5otyk) на стороне платежного шлюза пользователь будет перенаправлен на страницу с результатами перевода, а через 3 секунды будет возвращен на сайт мерчанта.

**Адрес возврата пользователя** (URL страницы) — указывается мерчантом заранее в виде URL. Пример адреса возврата:[ http://myshop.ru/complete?order\_id={order\_id](http://myshop.ru/complete?order_id=%7border_id)}

Для получения результатов транзакции следует использовать данные, полученные в рамках запроса статуса транзакции (см. метод [GetStatus](https://docs.payler.com/ru-api/platezhi#_getstatus)).

Необходимо учесть, что возврат на указанный URL может быть сделан несколько раз, например когда пользователь запутался, нажимал кнопку «Back» в браузере и несколько раз вводил свои карточные данные для перевода. Если пользователь ошибочно попытается повторно осуществить перевод в рамках одной сессии, то ему будет показано сообщение о том, что перевод уже произведен и сделано перенаправление на сайт мерчанта.

### CreditMerchant

Запрос перевода денежных средств на карту пользователя.

**Формат запроса:** [https://{host}.payler.com/cmapi/Credit](about:blank)

**Доступно для:** cmapi

**Метод отправки запроса:** <mark style="color:green;background-color:green;">**`POST`**</mark>

{% hint style="info" %}
Использование данного метода предполагает обязательное соответствие системы мерчанта требованиям [PCI DSS](https://docs.payler.com/ru-api/obshie-svedeniya/vvedenie#pci-dss).
{% endhint %}

**Параметры запроса:**

<table data-header-hidden><thead><tr><th width="183"></th><th width="94.28571428571428"></th><th width="81"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>key</td><td>A..100</td><td>R</td><td>Идентификатор мерчанта.<br>Выдается с параметрами доступа</td></tr><tr><td>password</td><td>A..100</td><td>R</td><td>Пароль мерчанта для проведения операций.<br>Выдается с параметрами доступа</td></tr><tr><td>order_id</td><td>A..100</td><td>R</td><td><p>Идентификатор перевода в системе мерчанта.</p><p>Для каждого перевода нужен свой уникальный идентификатор. Только печатные ASCII‑символы</p></td></tr><tr><td>amount</td><td>N</td><td>R</td><td>Сумма перевода в минимальной денежной единице (копейки, центы и т. д.)</td></tr><tr><td>product</td><td>A..256</td><td>O</td><td>Описание перевода.</td></tr><tr><td>currency</td><td>A3</td><td>О</td><td>Валюта платежа (см. <a href="../../obshie-svedeniya/obshaya-informaciya#podderzhivaemye-valyuty">Поддерживаемые валюты</a>). По умолчанию — RUB</td></tr><tr><td>card_number</td><td>A..19</td><td>R</td><td>Номер карты.<br>Десятичные цифры без разделителей [0–9]</td></tr><tr><td>card_holder</td><td>A..100</td><td>О</td><td>Имя держателя карты. Латинские символы, десятичные цифры, символ пробела [a–zA–Z0–9 ]</td></tr><tr><td>lang</td><td>A2</td><td>О</td><td><p>Предпочитаемый язык ответов сервера.</p><p>en — английский; ru — русский.</p><p>По умолчанию — ru</p></td></tr><tr><td>email</td><td>A..100</td><td>R</td><td>Адрес электронной почты пользователя</td></tr><tr><td>userdata</td><td>A..1000</td><td>O</td><td>Пользовательские данные. Можно передать в этой строке любую информацию, которую нужно сохранить вместе с переводом, а потом получить её с помощью метода <a href="../platezhi#_getadvancedstatus">GetAdvancedStatus</a></td></tr><tr><td>user_entered_params</td><td>A..100</td><td>O</td><td>Можно указать дополнительные поля для перевода, начинающиеся с user_entered_. Затем все эти поля возвращаются в <a href="../platezhi#_getadvancedstatus">GetAdvancedStatus</a> в поле user_entered_params</td></tr><tr><td>pay_page_param_addtoreport3</td><td>A</td><td>O</td><td>При <a href="../../obshie-svedeniya/obshaya-informaciya#splitovanie-platezhei">сплитовании</a>: суммы переводов для каждого получателя в минимальной денежной единице (копейки, центы и т. д.) через запятую</td></tr><tr><td>pay_page_param_addtoreport4</td><td>A</td><td>O</td><td>При <a href="../../obshie-svedeniya/obshaya-informaciya#splitovanie-platezhei">сплитовании</a>: ID получателей через запятую. Регистрируются через службу технической поддержки</td></tr><tr><td>expired_year</td><td>N2</td><td>R/O*</td><td>Год окончания срока действия карты</td></tr><tr><td>expired_month</td><td>N2</td><td>R/O*</td><td>Месяц окончания срока действия карты</td></tr><tr><td>secure_code</td><td>A</td><td>R/O*</td><td>Код подлинности карты (CVC2/CVV2). Десятичные цифры [0–9]</td></tr></tbody></table>

{% hint style="info" %}
**R/O**

Обязательность параметров зависит от конкретного банка-эквайера. Необходимость передачи уточняется индивидуально для каждого мерчанта.
{% endhint %}

**Параметры ответа:**

<table data-header-hidden><thead><tr><th width="188.7142857142857"></th><th width="92"></th><th width="76"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>order_id</td><td>A..100</td><td>R</td><td>Идентификатор оплачиваемого заказа в системе мерчанта. Соответствует переданному в запросе</td></tr><tr><td>amount</td><td>N</td><td>R</td><td>Сумма в минимальной денежной единице (копейки, центы и т. д.)</td></tr><tr><td>card_holder</td><td>A..100</td><td>R</td><td>Имя держателя карты. Соответствует переданному в запросе</td></tr><tr><td>card_number</td><td>A..19</td><td>O</td><td>Маскированный номер карты, с помощью которой осуществлен перевод</td></tr><tr><td>status</td><td>A</td><td>R</td><td>Статус перевода</td></tr></tbody></table>

Пример ответа на успешный запрос:

```json
{
         "amount": 100,
         "card_number": "555555xxxxxx5599",
         "card_holder": "test",
         "order_id": "19",
         "status": "Pending"
}
```

После совершения запроса [CreditMerchant](#creditmerchant) требуется вызвать запрос [GetStatus](https://docs.payler.com/ru-api/platezhi#_getstatus) для получения актуального статуса операции.

### RepeatCredit <a href="#repeatcredit" id="repeatcredit"></a>

Запрос перевода средств на заранее сохраненную карту. Результатом обработки запроса является перевод денежных средств.

**URL запроса:** [https://{host}.payler.com/cgapi/RepeatCredit](about:blank)

**Доступно для:** cgapi

**Метод отправки запроса:** <mark style="color:green;background-color:green;">**`POST`**</mark>

**Параметры запроса:**

<table data-header-hidden><thead><tr><th></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>key</td><td>A..100</td><td>R</td><td>Идентификатор мерчанта. Выдается с параметрами доступа</td></tr><tr><td>password</td><td>A..100</td><td>R</td><td>Пароль мерчанта для проведения операций через Credit Gate API. Выдается с параметрами доступа</td></tr><tr><td>order_id</td><td>A..100</td><td>R</td><td>Идентификатор перевода в системе мерчанта. Для каждого перевода нужен свой уникальный идентификатор. Только печатные ASCII‑символы</td></tr><tr><td>customer_id</td><td>A..100</td><td>O</td><td>Идентификатор пользователя. Генерируется мерчантом</td></tr><tr><td>amount</td><td>N</td><td>R</td><td>Сумма перевода в минимальной денежной единице (копейки, центы и т. д.)</td></tr><tr><td>product</td><td>A..256</td><td>O</td><td>Описание перевода.</td></tr><tr><td>currency</td><td>A3</td><td>O</td><td>Валюта платежа (см. <a href="../../obshie-svedeniya/obshaya-informaciya#podderzhivaemye-valyuty">Поддерживаемые валюты</a>). По умолчанию — RUB</td></tr><tr><td>card_id</td><td>A..100</td><td>R</td><td>Идентификатор карты, на которую будет осуществлен перевод</td></tr><tr><td>lang</td><td>A2</td><td>O</td><td><p>Предпочитаемый язык ответов сервера.</p><p>en — английский; ru — русский. По умолчанию — ru</p></td></tr><tr><td>userdata</td><td>A..1000</td><td>O</td><td>Пользовательские данные. Можно передать в этой строке любую информацию, которую нужно сохранить вместе с платежом, а потом получить её с помощью метода <a href="../platezhi#_getadvancedstatus">GetAdvancedStatus</a></td></tr><tr><td>pay_page_param_*</td><td>A..100</td><td>O</td><td>Можно передать любые параметры, начинающиеся с pay_page_param_.</td></tr></tbody></table>

{% hint style="info" %}
**Параметр currency**

Если мерчант использует при расчетах более одной валюты, параметр\
currency является обязательным!\
Например, если шаблон рекуррентного платежа был создан по переводу, осуществленному в USD, то при повторном переводе необходимо указывать USD.\
В противном случае операция пройдет по рублевому терминалу, с конвертацией валюты и начислением дополнительной комиссии.
{% endhint %}

**Параметры ответа:**

<table data-header-hidden><thead><tr><th width="150"></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>order_id</td><td>A..100</td><td>R</td><td>Идентификатор перевода в системе мерчанта.<br>Соответствует переданному в запросе</td></tr><tr><td>amount</td><td>N</td><td>R</td><td>Сумма в минимальной денежной единице (копейки, центы и т. д.)</td></tr><tr><td>card_holder</td><td>A..100</td><td>O</td><td>Имя держателя карты. Соответствует переданному в запросе</td></tr><tr><td>card_number</td><td>A..19</td><td>R</td><td>Маскированный номер карты, с помощью которой осуществлен перевод</td></tr><tr><td>status</td><td>A</td><td>R</td><td>Статус перевода</td></tr></tbody></table>

Пример ответа на успешный запрос:

```json
{
         "amount": 100,
         "card_number": "555555xxxxxx5599",
         "card_holder": "test",
         "order_id": "19",
         "status": "Pending"
}
```

Если статус перевода имеет значение «Pending»**,** то запрос статуса следует повторять до изменения статуса. Частоту запроса изменять в геометрической прогрессии. После совершения запроса RepeatCredit требуется вызвать запрос GetStatus для получения актуального статуса операции.

### GetBalance <a href="#getbalance" id="getbalance"></a>

Запрос списка балансов.

**URL запроса:** [https://{host}.payler.com/{api}/v1/GetBalance](about:blank)

**Доступно для:** cgapi, cmapi

**Метод отправки запроса:** <mark style="color:green;background-color:green;">**`POST`**</mark>

**Параметры запроса:**

<table data-header-hidden><thead><tr><th width="161"></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>key</td><td>A..100</td><td>R</td><td>Идентификатор мерчанта. Выдается с параметрами доступа</td></tr></tbody></table>

**Параметры ответа:**

<table data-header-hidden><thead><tr><th width="150"></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td><strong>Название</strong></td><td><strong>Тип</strong></td><td><strong>R/O</strong></td><td><strong>Описание</strong></td></tr><tr><td>balance</td><td>Ar</td><td>R</td><td>Баланс в минимальных единицах валюты</td></tr><tr><td>name</td><td>A</td><td>R</td><td>Наименование счета</td></tr><tr><td>currency</td><td>A3</td><td>R</td><td>Код валюты</td></tr><tr><td>remain</td><td>N</td><td>R</td><td>Остаток</td></tr></tbody></table>

Пример ответа на успешный запрос:

```json
{
         "balance": [
         {
        "name": "Card (Euro)",
        "currency": "EUR",
        "remain": 0
         },
         {
        "name": "Card (United States Dollar)",
        "currency": "USD",
         "remain": 0
         },
         {
        "name": "Card (Russian Ruble)",
        "currency": "RUB",
         "remain": 30000
         },
         {
        "name": "Qiwi (Russian Ruble)",
        "currency": "RUB",
        "remain": 7000
         }
         ]
}
```
