Към съдържанието

Преавторизация

Какво е преавторизация? - Предварително плащане, което гарантира, че клиентът разполага с достатъчно средства или кредитен лимит за покриване на транзакцията. Често се използва, когато крайната сума на плащането е несигурна, като хотелски резервации, коли под наем или хранене в ресторанти.

Описание на процеса

  1. Клиент започва процес на плащане уебсайт или платформа на търговеца, като избира опция за плащане с кредитна или дебитна карта.
  2. Търговецът инициира заявка за преавторизация, като изпраща необходимата информация.
  3. Клиента се пренасочва към страница за плащане, където трябва да въведе данните за картата си.
  4. След успешно въвеждане на данните за картата ще бъде блокирана сумата, която е поискана за преавторизация. Това означава, че тази сума не може да бъде изразходвана или достъпна на клиента до извършване на заявка за потвърждение или отказ в рамките на следващите 30 дни.
    • След изтичане на периода от 30 дни, ако не бъдат предприети действия от страна на търговеца, заявката ще бъде отказана автоматично.
  5. ePay.bg изпраща потвърждение на търговеца (нотификация), като го информира, че заявката за преавторизация е заплатена или отказана.
    • За да получавате в реално време нотификации за статуса на плащанията, трябва да разработите Известие за плащане.
    • С тази нотификация, търговецът ще има яснота дали сумата е задържана.
  6. За всяка заявка за преавторизация, е задължително да се изпрати само една от заявките:
  7. След всяка заявка за потвърждение или отказ, е задължително търговецът да пусне проверка:

Важно

Необходимо е да имате разработено Известие за плащане, за да получавате информация в реално време за плащанията на клиенти.

Ако нямате разработено известие за плащане и клиентът по някаква причина не успее да завърши заявката за преавторизация (не си въведе данните, откаже, няма пари или изтече времето), а в същото време направите опит за взимане на сумата (потвърждение) или отказ, то Вие ще получите грешка.

Комуникационна схема

Преавторизация

Продукционна среда

Метод 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 Съответства на КИН в личните данни на търговеца Задължителен
EMAIL 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 (сума от преавторизацията) Задължителен