-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path_statuses_ru.html.md.erb
More file actions
226 lines (180 loc) · 24 KB
/
_statuses_ru.html.md.erb
File metadata and controls
226 lines (180 loc) · 24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
# Статусы и типы операций, коды ошибок {#statuses}
## Коды ошибок {#http-errors}
Протокол приема платежей использует для запросов API следующие HTTP-коды ошибок:
Код ошибки | Описание
---------- | -------
400 | Bad Request — Клиентский запрос некорректен (ошибка в данных или в формате запроса).
401 | Unauthorized — Неправильный ключ доступа к API.
403 | Forbidden — Доступ к API запрещен.
404 | Not Found — Указанный ресурс не найден.
405 | Method Not Allowed — Для создания платежа использовался неправильный метод.
406 | Not Acceptable — Формат данных отличается от JSON.
410 | Gone — Запрашиваемый ресурс удален.
429 | Too Many Requests — Слишком много запросов.
500 | Internal Server Error — Внутренняя ошибка сервиса. Если тело ответа пустое, повторите запрос с теми же параметрами. Если тело ответа не пустое, выполните [запрос статуса платежа](#payment_get) или [статуса счета](#invoice-details).
502 | Bad Gateway — Нет связи с сервисом
503 | Service Unavailable — Сервер временно недоступен по техническим причинам, попробуйте позже.
## Типы операций {#operation-types}
Тип операции возвращается в поле `{operation}.type` [уведомления](#callback).
<% if config[:payin_show_methods] == "true" %>
Тип операции | Описание
---|----
PAYMENT | Платеж. В уведомлении может присутствовать поле `flags: [ "SALE" ]` (обычный платеж) или `flags: [ "AUTH" ]` (платеж с холдированием средств).
CAPTURE | Операция подтверждения.
REFUND | Операция возврата. В уведомлении может присутствовать поле `flags: [ "REVERSAL" ]`. Это значит, что финансовой операции (списания средств со счета покупателя) не было, комиссия по операции удержана не будет.
PAYOUT | Операция выплаты. В уведомлении может присутствовать поле `flags: [ "TEST" ]`. Это значит, что операция тестовая
<% else %>
Тип операции | Описание
---|----
PAYMENT | Платеж. В уведомлении может присутствовать поле `flags: [ "SALE" ]` (обычный платеж) или `flags: [ "AUTH" ]` (платеж с холдированием средств).
CAPTURE | Операция подтверждения.
REFUND | Операция возврата. В уведомлении может присутствовать поле `flags: [ "REVERSAL" ]`. Это значит, что финансовой операции (списания средств со счета покупателя) не было, комиссия по операции удержана не будет.
<% end %>
## Статусы операций {#operation-statuses}
Статус операции отражает ее текущее состояние.
### Ответы API {#api-statuses}
API возвращает синхронный статус операции в поле `status.value`.
В таблице перечислены возможные статусы и [типы операций](#operation-types), в которых эти статусы используются.
<% if config[:payin_show_methods] == "true" %>
Тип операции | Статус операции | Описание статуса
-------------|-----------------|-------------------------------------------------------------------------------------------
PAYMENT | WAITING | Ожидание 3DS авторизации
PAYMENT | DECLINED | Запрос авторизации отклонен (в синхронном ответе)
PAYMENT | DECLINE | Запрос авторизации отклонен (в асинхронном ответе)
PAYMENT | COMPLETED | Запрос авторизации успешно обработан
CAPTURE | DECLINE | Запрос подтверждения отклонен
CAPTURE | DECLINED | Запрос подтверждения отклонен (в [ответе API на запрос статуса](#capture_get))
CAPTURE | COMPLETED | Запрос подтверждения успешно обработан
REFUND | DECLINE | Запрос возврата отклонен
REFUND | COMPLETED | Запрос возврата успешно обработан
PAYOUT | WAITING | Выплата принята в обработку
PAYOUT | INIT | Инициализация выплаты при двушаговом сценарии
PAYOUT | DECLINED | Выплата отклонена
PAYOUT | COMPLETED | Выплата успешно проведена
<% else %>
Тип операции | Статус операции | Описание статуса
-------------|-----------------|-------------------------------------------------------------------------------------------
PAYMENT | WAITING | Ожидание 3DS авторизации
PAYMENT | DECLINED | Запрос авторизации отклонен (в синхронном ответе)
PAYMENT | DECLINE | Запрос авторизации отклонен (в асинхронном ответе)
PAYMENT | COMPLETED | Запрос авторизации успешно обработан
CAPTURE | DECLINE | Запрос подтверждения отклонен
CAPTURE | DECLINED | Запрос подтверждения отклонен (в [ответе API на запрос статуса](#capture_get))
CAPTURE | COMPLETED | Запрос подтверждения успешно обработан
REFUND | DECLINE | Запрос возврата отклонен
REFUND | COMPLETED | Запрос возврата успешно обработан
<% end %>
<aside class="notice">Для операций со счетами используется только статус CREATED.</aside>
### Уведомления {#notification-statuses}
В уведомлениях статус помещается в поле `{operation}.status.value`.
В таблице перечислены возможные статусы и [типы операций](#operation-types), в которых эти статусы используются.
<% if config[:payin_show_methods] == "true" %>
Тип операции | Статус операции | Описание статуса
-------------|-----------------|---------------------------------------
PAYMENT | DECLINE | Запрос авторизации отклонен
PAYMENT | SUCCESS | Запрос авторизации успешно обработан
CAPTURE | DECLINE | Запрос подтверждения отклонен
CAPTURE | SUCCESS | Запрос подтверждения успешно обработан
REFUND | DECLINE | Запрос возврата отклонен
REFUND | SUCCESS | Запрос возврата успешно обработан
PAYOUT | WAITING | Выплата принята в обработку
PAYOUT | INIT | Инициализация выплаты при двушаговом сценарии
PAYOUT | DECLINED | Выплата отклонена
PAYOUT | SUCCESS | Выплата успешно проведена
<% else %>
Тип операции | Статус операции | Описание статуса
-------------|-----------------|---------------------------------------
PAYMENT | DECLINE | Запрос авторизации отклонен
PAYMENT | SUCCESS | Запрос авторизации успешно обработан
CAPTURE | DECLINE | Запрос подтверждения отклонен
CAPTURE | SUCCESS | Запрос подтверждения успешно обработан
REFUND | DECLINE | Запрос возврата отклонен
REFUND | SUCCESS | Запрос возврата успешно обработан
<% end %>
## Справочник ошибок API {#reason-codes}
Ошибки API описывают причину отклонения операции и передаются:
* в ответах на запросы — в поле `status.reason`;
* в уведомлениях — в поле `status.reasonCode`.
Некоторые ошибки API сопровождаются [детализацией ошибки и рекомендованными действиями, полученными от платежной системы](#ps-error-codes) в поле `status.psErrorCode`.
<aside class="notice">
Список ошибок API может дополняться новыми ошибками. Следите за обновлениями.
</aside>
Ошибка API|Описание
------------------|--------
INVALID_STATE| Некорректный статус транзакции
INVALID_AMOUNT| Некорректная сумма
INVALID_RECEIVER_DATA | Ошибка при передаче данных о получателе
DECLINED_BY_MPI | Отклонено MPI
DECLINED_BY_FRAUD| Отклонено fraud-мониторингом
REATTEMPT_NOT_PERMITTED| Повторный запрос авторизации запрещен на основании правил Платежной системы
REATTEMPT_NOT_PERMITTED_BY_PS| Операция отклонена платежной системой. Детализация ошибки содержится в [поле](#ps-error-codes) `status.psErrorCode`. По данной карте повторная операция невозможна
GATEWAY_INTEGRATION_ERROR| Ошибка взаимодействия с банком
GATEWAY_TECHNICAL_ERROR| Техническая ошибка на стороне банка
ACQUIRING_MPI_TECH_ERROR| Техническая ошибка при проведении 3DS аутентификации
ACQUIRING_GATEWAY_TECH_ERROR| Техническая ошибка
ACQUIRING_ACQUIRER_ERROR| Техническая ошибка
ACQUIRING_AUTH_TECHNICAL_ERROR| Ошибка при проведении авторизации средств
ACQUIRING_ISSUER_NOT_AVAILABLE| Ошибка эмитента. Банк-эмитент не доступен
ACQUIRING_SUSPECTED_FRAUD| Ошибка эмитента. Подозрение на мошенничество
ACQUIRING_LIMIT_EXCEEDED| Ошибка эмитента. Превышен один из лимитов
ACQUIRING_NOT_PERMITTED| Ошибка эмитента. Операция не разрешена
ACQUIRING_INCORRECT_CVV| Ошибка эмитента. Некорректный CVV
ACQUIRING_EXPIRED_CARD| Ошибка эмитента. Неверный срок действия карты
ACQUIRING_INVALID_CARD| Ошибка эмитента. Проверьте корректность введенных данных
ACQUIRING_INSUFFICIENT_FUNDS| Ошибка эмитента. Недостаточно средств
ACQUIRING_UNKNOWN| Неизвестная ошибка
BILL_ALREADY_PAID| Счет уже оплачен
PAYIN_PROCESSING_ERROR| Ошибка при проведении платежа
PAYMENT_EXPIRED_3DS | Не пройдена 3DS-аутентификация
TRY_AGAIN_LATER | Повторите запрос через некоторое время
### Ошибки операции выплаты {#payout-reason-codes}
Ошибка API|Описание
------------------|--------
GATEWAY_TECHNICAL_ERROR | Неизвестная техническая ошибка, попробуйте повторить запрос еще раз
MERCHANT_SETTINGS_ERROR | Ошибка в настройках мерчанта, обратитесь в Службу поддержки
DECLINED_BY_FRAUD | Отклонено fraud-мониторингом
DECLINED_BY_PAYOUT_GATEWAY | Отклонено выплатным шлюзом
## Справочник кодов детализации ошибки {#ps-error-codes}
Коды детализации ошибки и рекомендованных действий, полученные от платежной системы, возвращаются в поле `status.psErrorCode`.
| Код | [Ошибка API](#reason-codes), с которой возвращается | Детализация причины ошибки и рекомендация по ее устранению |
|-----|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 03 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция в данную категорию ТСП запрещена эмитентом |
| 04 | REATTEMPT_NOT_PERMITTED_BY_PS | Карта заблокирована |
| 05 | ACQUIRING_NOT_PERMITTED | Отклонение запроса по иным причинам |
| 12 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция данного типа запрещена Правилами и Стандартами платежной системой |
| 13 | ACQUIRING_NOT_PERMITTED | Некорректная сумма. Повторите попытку совершения операции с другой суммой |
| 14 | ACQUIRING_NOT_PERMITTED | Некорректный номер карты. Введите корректный номер карты или используйте другую карту |
| 15 | REATTEMPT_NOT_PERMITTED_BY_PS | Эмитента с данной картой не существует |
| 30 | ACQUIRING_NOT_PERMITTED | Операция отклонена, обратитесь в Qiwi за дополнительной информацией |
| 33 | REATTEMPT_NOT_PERMITTED_BY_PS | Данная карта недоступна для использования |
| 41 | REATTEMPT_NOT_PERMITTED_BY_PS | Данная карта недоступна для использования |
| 43 | REATTEMPT_NOT_PERMITTED_BY_PS | Данная карта недоступна для использования |
| 51 | ACQUIRING_INSUFFICIENT_FUNDS | Клиенту может быть рекомендовано повторить попытку совершения операции после пополнения счёта |
| 54 | ACQUIRING_EXPIRED_CARD | Срок действия карты отсутствует или передан неверно |
| 57 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция данного типа недоступна для карты |
| 58 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция данного типа недоступна для эквайера |
| 61 | ACQUIRING_LIMIT_EXCEEDED | Клиенту может быть рекомендовано повторить попытку совершения операции в другой день — после переустановки Эмитентом лимита по общей сумме операций данного типа |
| 62 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция недоступна из-за ограничений на карте или счёте Держателя карты |
| 63 | ACQUIRING_NOT_PERMITTED | Операция отклонена, обратитесь в Qiwi за дополнительной информацией |
| 65 | ACQUIRING_LIMIT_EXCEEDED | Клиенту может быть рекомендовано повторить попытку совершения операции в другой день — после переустановки Эмитентом лимита по общему количеству операций данного типа |
| 75 | ACQUIRING_INCORRECT_CVV | Отклонение запроса по причине неверного ввода PIN-кода ранее |
| 76 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение отмены запроса из-за отсутствия оригинального запроса |
| 78 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса из-за попытки использования закрытой карты |
| 86 | ACQUIRING_INCORRECT_CVV | Отклонение запроса по причине неверного ввода PIN-кода ранее |
| 88 | ACQUIRING_AUTH_TECHNICAL_ERROR | Отклонение запроса из-за ошибки криптографии, может возникнуть из-за неправильного CVV2/CVC2 |
| 91 | ACQUIRING_ISSUER_NOT_AVAILABLE | Клиенту может быть рекомендовано повторить попытку совершения операции в другое время — после восстановления работоспособности Эмитента |
| 92 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение Платежной Системой из-за невозможности проведения операции |
| 93 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса по причине нарушения требований законодательства |
| 94 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение задублированного запроса |
| 96 | ACQUIRING_NOT_PERMITTED | Клиенту может быть рекомендовано повторить попытку совершения операции в другое время — после восстановления работоспособности Эмитента или Платформы |
| TS | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса в связи с отменой длительного поручения Держателя карты |
| CB | ACQUIRING_ACQUIRER_ERROR | Отклонение запроса из-за некорректной даты рождения Держателя карты |
| CD | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса по причине смерти Держателя карты |
### Правила работы с детализированной информацией {#ps-error-codes-rules}
Существуют две группы кодов ошибок:
* Группа 1: `03`, `04`, `12`, `15`, `33`, `41`, `43`, `57`, `58`, `62`, `76`, `78`, `92`, `93`, `94`, `CD`, `TS`, `05`.
* Группа 2: `13`, `14`, `30`, `54`, `51`, `61`, `63`, `65`, `75`, `86`, `88`, `91`, `96`, `CB`.
По правилам НСПК действуют следующие условия совершения повторов транзакций с non-3DS авторизацией по картам платёжной системы МИР:
* После ответа из группы 1 проводить транзакции больше нельзя в течение суток.
* После ответа из группы 2 разрешается ещё одна попытка проведения транзакций в течение суток.
Ограничения применяются в отношении конечного получателя, в случае если нами были получены соответствующие коды ответа.