Преавторизация¶
Какво е преавторизация? - Предварително плащане, което гарантира, че клиентът разполага с достатъчно средства или кредитен лимит за покриване на транзакцията. Често се използва, когато крайната сума на плащането е несигурна, като хотелски резервации, коли под наем или хранене в ресторанти.
Описание на процеса¶
- Клиент започва процес на плащане уебсайт или платформа на търговеца, като избира опция за плащане с кредитна или дебитна карта.
- Търговецът инициира заявка за преавторизация, като изпраща необходимата информация.
- Клиента се пренасочва към страница за плащане, където трябва да въведе данните за картата си.
- След успешно въвеждане на данните за картата ще бъде блокирана сумата, която е поискана за преавторизация. Това означава, че тази сума не може да бъде изразходвана или достъпна на клиента до извършване на заявка за потвърждение или отказ в рамките на следващите 30 дни.
- След изтичане на периода от 30 дни, ако не бъдат предприети действия от страна на търговеца, заявката ще бъде отказана автоматично.
- ePay.bg изпраща потвърждение на търговеца (нотификация), като го информира, че заявката за преавторизация е заплатена или отказана.
- За да получавате в реално време нотификации за статуса на плащанията, трябва да разработите Известие за плащане.
- С тази нотификация, търговецът ще има яснота дали сумата е задържана.
- За всяка заявка за преавторизация, е задължително да се изпрати само една от заявките:
- След всяка заявка за потвърждение или отказ, е задължително търговецът да пусне проверка:
Важно
Необходимо е да имате разработено Известие за плащане, за да получавате информация в реално време за плащанията на клиенти.
Ако нямате разработено известие за плащане и клиентът по някаква причина не успее да завърши заявката за преавторизация (не си въведе данните, откаже, няма пари или изтече времето), а в същото време направите опит за взимане на сумата (потвърждение) или отказ, то Вие ще получите грешка.
Комуникационна схема¶

Продукционна среда¶
| Метод | WEB_ADDRESS |
|---|---|
| POST | https://www.epay.bg/v3main/ |
Демо среда¶
Входна точка за тестови цели.
| Метод | WEB_ADDRESS |
|---|---|
| POST | https://demo.epay.bg/xdev/web/ |
За тестови заявки може да се ползват следните карти с коректна дата на валидност (всяка бъдеща дата) и произволен CVC код:
За успешно плащане:
Mastercard: 5100770000000022
VISA: 4341792000000044
За карти VISA
Може да се изисква код 111111 за тестове със сума над 30лв и необходимост от потвърждение с парола.
За неуспешнo плащане:
Mastercard: 5555000000070019
Заявка за преавторизация¶
| Метод | Адрес |
|---|---|
| POST | WEB_ADDRESS/paylogin |
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| ENCODED | string | Кодирана с base64 (RFC 3548) заявка за плащане, EOL='' |
Задължителен |
| CHECKSUM | string | Контролна сума върху ENCODED, генерирана като HMAC с алгоритъм SHA-1 и секретната дума на търговеца | Задължителен |
Параметри в ENCODED
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| MIN | int | Съответства на КИН в личните данни на търговеца | Задължителен |
| string | Електронна поща на търговеца в системата | Опционален | |
| INVOICE | int | Номер на фактура; уникален за търговеца | Задължителен |
| AMOUNT | float | Валидна сума > 0.01 (например: 22, 22.8, 22.80) | Задължителен |
| CURRENCY | string | Приемани валути са BGN, USD или EUR; ако не се подаде е BGN по подразбиране |
Опционален |
| EXP_TIME | datetime | време на валидност на заявката; формат DD.MM.YYYY[hh:mm[:ss]] |
Задължителен |
| DESCR | string | Описание до 100 символа; CP1251 символи, ако не е подаден друг ENCODING |
Опционален |
| ENCODING | encoding | CP1251 (по подразбиране) или utf-8 | Опционален |
| PREAUTH | int | = 1 - заявява се плащане чрез преавторизация на сумата |
Задължителен |
Бележка
Формирането на протокола е същото както в Онлайн плащане, единствената разлика е, че в тази заявка се добавя PREAUTH=1 в ENCODED.
Oтговор
STATUS=OK
STATUS=PROCESSING
ERR=Описание на грешка
За тестове трябва да се подаде и force_credit_paydirect=1.
Заявка за потвърждение¶
| Метод | Адрес |
|---|---|
| POST | WEB_ADDRESS/preauth/confirm |
Информация
В случай, че се подаде по-малка сума, тя се осчетоводява и остатъкът се освобождава.
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| ENCODED | string | Кодирана с base64 (RFC 3548) заявка за плащане, EOL='' |
Задължителен |
| CHECKSUM | string | Контролна сума върху ENCODED, генерирана като HMAC с алгоритъм SHA-1 и секретната дума на търговеца | Задължителен |
Параметри в ENCODED
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| MIN | int | MIN от оригиналната заявка за преавторизация |
Задължителен |
| INVOICE | int | INVOICE от оригиналната заявка за преавторизация |
Задължителен |
| ORIGINAL_AMOUNT | float | Сума от преавторизацията | Задължителен |
| CONFIRM_AMOUNT | float | Сума, която ще се вземе реално при потвърждението; трябва да е по-малка или равна на ORIGINAL_AMOUNT |
Задължителен |
Проверка на потвърждение на преавторизация¶
| Метод | Адрес |
|---|---|
| POST | WEB_ADDRESS/preauth/confirm/status |
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| ENCODED | string | Кодирана с base64 (RFC 3548) заявка за плащане, EOL='' |
Задължителен |
| CHECKSUM | string | Контролна сума върху ENCODED, генерирана като HMAC с алгоритъм SHA-1 и секретната дума на търговеца | Задължителен |
Параметри в ENCODED
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| MIN | int | MIN от оригиналната заявка за преавторизация |
Задължителен |
| INVOICE | int | INVOICE от оригиналната заявка за преавторизация |
Задължителен |
| ORIGINAL_AMOUNT | float | Сума от преавторизацията | Задължителен |
| CONFIRM_AMOUNT | float | Сумата, която се е подала за вземане при заявката за потвърждение | Задължителен |
Заявка за отказ¶
| Метод | Адрес |
|---|---|
| POST | WEB_ADDRESS/preauth/cancel |
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| ENCODED | string | Кодирана с base64 (RFC 3548) заявка за плащане, EOL='' |
Задължителен |
| CHECKSUM | string | Контролна сума върху ENCODED, генерирана като HMAC с алгоритъм SHA-1 и секретната дума на търговеца | Задължителен |
Параметри в ENCODED
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| MIN | int | MIN от оригиналната заявка за преавторизация |
Задължителен |
| INVOICE | int | INVOICE от оригиналната заявка за преавторизация |
Задължителен |
| ORIGINAL_AMOUNT | float | Сума от преавторизацията | Задължителен |
| REV_AMOUNT | float | =ORIGINAL AMOUNT (сума от преавторизацията) |
Задължителен |
Проверка на отказ на преавторизация¶
| Метод | Адрес |
|---|---|
| POST | WEB_ADDRESS/preauth/cancel/status |
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| ENCODED | string | Кодирана с base64 (RFC 3548) заявка за плащане, EOL='' |
Задължителен |
| CHECKSUM | string | Контролна сума върху ENCODED, генерирана като HMAC с алгоритъм SHA-1 и секретната дума на търговеца | Задължителен |
Параметри в ENCODED
| Параметър | Тип | Описание | Опционалност |
|---|---|---|---|
| MIN | int | MIN от оригиналната заявка за преавторизация |
Задължителен |
| INVOICE | int | INVOICE от оригиналната заявка за преавторизация |
Задължителен |
| ORIGINAL_AMOUNT | float | Сума от преавторизацията | Задължителен |
| REV_AMOUNT | float | =ORIGINAL AMOUNT (сума от преавторизацията) |
Задължителен |