Общая информация

ПараметрЗначение
Протокол

--------

ID

174

Версия модуля9.01
Версия биллинга>1.40.00


Назначение модуля

Модуль является универсальным для обработки платежных выписок в формате CSV.

Настройки модуля

  1. Скопировать файл CSV.pm в папку /usr/abills/Abills/modules/Paysys/systems/
  2. Зайти в меню Настройки>Paysys>Настройки
  3. Добавить платежную систему


Работа с несколькими банками

Модуль поддерживает наследование, поэтому можете добавлять другой банк, как отдельный модуль в Настройки>Paysys>Настройки


В отчете будет отображаться отдельно подключенные плагины для обработки CSV


Если Вы работаете только с импортированием файлов в биллинг, выбор даты в выписке игнорируете 

Ручная работа с выписками

Можно вручую загрузить файл через Отчёт>Платежные системы>Внутренние отчеты. Если сохранять файл не нужно на сервере, дата указывать дату не обязательно, обработка будет всех платежей, которые есть в файле

Настройки контрагента

ПараметрЗначениеПример
PAYSYS_CSV_ACCOUNT_KEY*Поле по которому искать пользователя в системеUID
PAYSYS_CSV_FIELDS*Поля, которые присутствуют в выписке, можно указывать не все, если не нужно несколько последних в строкеDATE,TIME,ID,DESC,EDRPOU,KONTRAGENT,RAHUNOK KONTRAGENTA,NBU_ID,SUMA DEBET,SUMA KREDIT
PAYSYS_CSV_FIELDS_REGEX

Регулярные выражения, которые применять к полям, если платеж не будет подходить под требования регулярных выражений будет отображаться ошибка, валидации


Символ | используется в качестве делимитера между регулярными выражениями, поэтому использовать его в регулярных выражениях запрещено

^\d{2}:\d{2}:\d{2}$|^\d{4}.\d{2}.\d{2}$||^\d{8}$||^UA\d{27}$|^\d{6|}|^\d+$|^\d+$

PAYSYS_CSV_FIELDS_SEQUENCE*Собственный выбор и порядок полей в таблице, которые необходимо показывать. Названия полей должны быть на основе PAYSYS_CSV_FIELDS SUMA KREDIT,  DATE,TIME,ID,DESC,EDRPOU,KONTRAGENT,RAHUNOK KONTRAGENTA
PAYSYS_CSV_COLUMN_NAMES*Собственное название полей, которые будут отображаться в отчете. Порядок идет в соответствии с опцией PAYSYS_CSV_FIELDS_SEQUENCEДата,Час,Сума,Номер,Призначення,Код ЄДРПОУ,Контрагент,Рахунок Контрагента
PAYSYS_CSV_IMPORT_FIELD*Ключевое поле, на основе которого будет происходить зачисление платежа, берется как транзакция, если нет поля PAYSYS_CSV_TRANSACTION_FORMATKOD IDENT.
PAYSYS_CSV_IMPORT_FIELDS*

Зарезервированные поля в системе, которые применяются при импорте

SUM - сумма платежа
DESC - описание платежа
DATE - дата платежа

SUM:SUMA KREDIT;DATE:DATE;DESC:DESC
PAYSYS_CSV_REGEXРегулярное выражение, по которому будет проводится поиск пользователя \d{4,}
PAYSYS_CSV_REGEX_FIELDПоле по которому будет происходить поиск. Название поля, ваше собственное, которое присвоили в PAYSYS_CSV_FIELDSDESCRIPTION
PAYSYS_CSV_EDRPOU_CHECKПроверка по юридическому ID компании ЕГРПОУ или ИНН. Заполнять в опции нужно название поляEDRPOU
PAYSYS_CSV_AMOUNT_INTEGER_FORMATНужно, если сумма платежа составляет 200.52 у.е., а в выписке это число 200521
PAYSYS_CSV_DEBIT_PAYMENTS

Дебетовые платежи, которые есть в выписке и не нужно отображать


Указывается в формате тип:поле:значений. Возможно указывать в двох форматах

1:поле - которое отвечает за то что будет дебетовый платеж

2:поле:значение - тоже самое что выше, но если есть поле, которое должно быть равно определенному значению. Например в колонке TYPE есть значения "Дебет/Кредит"

2:TYPE:Дебет
PAYSYS_CSV_DEBIT_PAYMENTS_SKIPНе отображать в выписке дебетовые платежи1
PAYSYS_CSV_DATE_FORMAT*

Формат даты. Заполняется в виде: 

формат;поля с которых нужно сделать дату платежа 


Нужно если дата и время платежа отдельно и формат даты отличный от %Y-%m-%d %H:%M:%S

%Y-%m-%dT%H:%M:%S;DATE,TIME

PAYSYS_CSV_FILE_ENCODE

Изменить кодировку файла, если она отличается от utf-8windows-1251:utf-8
PAYSYS_CSV_HEADERУдалять первые строки в выписке, если это информационные поля 2
PAYSYS_CSV_FOOTERУдалять последние строки в выписке, если это информационные поля 2
PAYSYS_CSV_TRANSACTION_FORMAT

Поля с который формировать уникальную транзакцию, если в выписке платежей нет соответствующего поля.

Задается в формате
тип_1:значение_1;тип_Х:значение_Х

Типы:
field - название поля из выписки, которое вы присвоили в PAYSYS_CSV_FIELDS
string - делимитер между параметрами

field:NOMER;string:-;field:KOD IDENT.;string:-;field:DATA

PAYSYS_CSV_TRANSACTION_AS_MD5

Формировать транзакцию как строку MD5 на основании опции PAYSYS_CSV_TRANSACTION_FORMAT1
PAYSYS_CSV_STATEMENTS_CELL_PREPROCESS

Регулярное выражение, которое предназначено для обработки строки с платежом перед работой с ним.

Нужно, если надо удалить лишние символы в начале, в конце, задвоение кавычек

(^")|((?<=")")|(\s+"$)
PAYSYS_CSV_STATEMENTS_DELIMITER*

Разделитель между значениями платежа

;
PAYSYS_CSV_STATEMENTS_PATH

Директория де сохраняются файлы, по умолчанию 

/usr/abills/var/log/Paysys/{НОМЕР ПЛАТЕЖНОЙ СИСТЕМЫ}/

/var/db/Paysys/mtb
PAYSYS_CSV_STATEMENTS_FILE_FORMAT

Обработка названий файлов, если в названии не будет найдено значение по групе date - файл будет пропущен


Зарезервированные названия групп регулярных выражений 
date - название файла, обязательная группа
merchant_id - id мерчанта, может быть IBAN или другое значение, не обязательная группа
id - версия файла, необходимо, если выгружаться будут разные версии выписок банком в течение одних суток, не обязательная группа

(?<date>\d{8})-\d{6}-official_(?<merchant_id>UA\d{27})_(?<currency>[A-Z]{3})_(?<file_date>\d{8})\.(?<ext>[A-Za-z]+)
PAYSYS_CSV_STATEMENTS_FILE_SKIP

Пропускать файлы с помощью регулярного выражения

EUR|\d{24}
PAYSYS_CSV_PERIODIC_DISABLEОтключить работу периодической обработки сохраненных файлов выписки, если таковы имеются на сервере1


Базовые демонстрационные конфигурации для различных банков

МТБ Банк (автоклиент)



PAYSYS_MTBAUTO_COLUMN_NAMESДата,Сума,Призначення,ЕДРПОУ платника,Назва компанії платника
PAYSYS_MTBAUTO_DATE_FORMAT%y%m%d %H:%M:%S;DATE
PAYSYS_MTBAUTO_DEBIT_PAYMENTS2:TYPE:1
PAYSYS_MTBAUTO_FIELDSPLUG,PLUG,PLUG,PLUG,PLUG,PLUG,PLUG,PLUG,PLUG,PLUG,NAME,EDRPOU,SUM,CURR,TYPE,PLUG,DATE,PLUG,DESC,PLUG.PLUG,PLUG
PAYSYS_MTBAUTO_FIELDS_REGEX^|||||||||||^\d{8,10}$|^\d+([.,]\d+)?$||||^\d{6} \d{2}:\d{2}:\d{2}$|||||$
PAYSYS_MTBAUTO_FIELDS_SEQUENCEDATE,SUM,DESC,EDRPOU,NAME
PAYSYS_MTBAUTO_FILE_ENCODEwindows-1251:utf-8
PAYSYS_MTBAUTO_IMPORT_FIELDEDRPOU
PAYSYS_MTBAUTO_IMPORT_FIELDSSUM:SUM;DATE:DATE;DESC:DESC
PAYSYS_MTBAUTO_REGEX_FIELDDESC
PAYSYS_MTBAUTO_STATEMENTS_CELL_PREPROCESS(^")|("$)|("")|(?!^)(")(?!$)
PAYSYS_MTBAUTO_STATEMENTS_DELIMITER\|
PAYSYS_MTBAUTO_TRANSACTION_FORMATfield:EDRPOU;field:SUM;field:DATETIME;field:DESC
PAYSYS_MTBAUTO_STATEMENTS_FILE_FORMATDOC_(?<date>\d{8})\.csv
PAYSYS_MTBAUTO_STATEMENTS_PATH/usr/abills/Abills/modules/Paysys/t/csv/MTBAuto

А-Банк



PAYSYS_ABANKCSV_AMOUNT_INTEGER_FORMAT1
PAYSYS_ABANKCSV_COLUMN_NAMESДата операції,№ платежу,Тип операції,Контрагент,ЄДРПОУ/РНОКПП контрагента,IBAN Контрагента,Призначення платежу,Сума грн,Залишок після операції в валюті рахунку
PAYSYS_ABANKCSV_DATE_FORMAT%d.%m.%Y%H:%M:%S;DATE,TIME
PAYSYS_ABANKCSV_DEBIT_PAYMENTS2:TYPE:Вихідна
PAYSYS_ABANKCSV_EDRPOU_CHECKEDRPOU
PAYSYS_ABANKCSV_FIELDSDATE,TIME,ID,TYPE,KONTRAGENT,EDRPOU,IBAN,DESC,SUM,AFTER_SUM
PAYSYS_ABANKCSV_FIELDS_SEQUENCEDATETIME,ID,TYPE,KONTRAGENT,EDRPOU,IBAN,DESC,SUM,AFTER_SUM
PAYSYS_ABANKCSV_HEADER2
PAYSYS_ABANKCSV_IMPORT_FIELDEDRPOU
PAYSYS_ABANKCSV_IMPORT_FIELDSSUM:SUM;DATE:DATETIME;DESC:DESC
PAYSYS_ABANKCSV_STATEMENTS_CELL_PREPROCESS((?<=\d)\s(?=\d))|((?<=\d),(?=\d))|(\")
PAYSYS_ABANKCSV_STATEMENTS_DELIMITER,


CreditAgricole 



PAYSYS_CREDITAGRICOLECSV_COLUMN_NAMESДата,Час,Сума,Номер,Призначення,Код ЄДРПОУ,Контрагент,Рахунок Контрагента,ID NBU
PAYSYS_CREDITAGRICOLECSV_DATE_FORMAT%Y-%m-%dT%H:%M:%S
PAYSYS_CREDITAGRICOLECSV_EDRPOU_CHECKKOD IDENT.
PAYSYS_CREDITAGRICOLECSV_FIELDSDATA,CHAS,NOMER,PRIZNACHENNJA,KOD IDENT.,KONTRAGENT,RAHUNOK KONTRAGENTA,KOD ID NBU,SUMA DEBET,SUMA KREDIT
PAYSYS_CREDITAGRICOLECSV_FIELDS_SEQUENCEDATA,CHAS,SUMA KREDIT,NOMER,PRIZNACHENNJA,KOD IDENT.,KONTRAGENT,RAHUNOK KONTRAGENTA,KOD ID NBU
PAYSYS_CREDITAGRICOLECSV_FILE_ENCODEwindows-1251:utf-8
PAYSYS_CREDITAGRICOLECSV_HEADER1
PAYSYS_CREDITAGRICOLECSV_IMPORT_FIELDNOMER
PAYSYS_CREDITAGRICOLECSV_IMPORT_FIELDSSUM:SUMA KREDIT;DATE:CHAS;DESC:PRIZNACHENNJA
PAYSYS_CREDITAGRICOLECSV_REGEX\d{4,}
PAYSYS_CREDITAGRICOLECSV_REGEX_FIELDPRIZNACHENNJA
PAYSYS_CREDITAGRICOLECSV_STATEMENTS_DELIMITER;
PAYSYS_CREDITAGRICOLECSV_STATEMENTS_FILE_FORMAT(?<date>\d{8})-\d{6}-official_(?<merchant_id>UA\d{27})_(?<currency>[A-Z]{3})_(?<file_date>\d{8})\.(?<ext>[A-Za-z]+)
PAYSYS_CREDITAGRICOLECSV_STATEMENTS_PATH/usr/abills/Abills/modules/Paysys/t/csv/CreditAgricole
PAYSYS_CREDITAGRICOLECSV_TRANSACTION_FORMATfield:NOMER;string:-;field:KOD IDENT.;string:-;field:DATA


Укргазбанк



PAYSYS_UKRGASBANKCSV_COLUMN_NAMESСума,Дата,ЄДРПОУ/ІПН,Призначення,Назва компанії(банку) платника,Номер транзакції
PAYSYS_UKRGASBANKCSV_DATE_FORMAT%d/%m/%Y;DATA_VYP
PAYSYS_UKRGASBANKCSV_DEBIT_PAYMENTS2:DK:2
PAYSYS_UKRGASBANKCSV_EDRPOU_CHECKOKPO_KOR
PAYSYS_UKRGASBANKCSV_FIELDSDATA_VYP,MFO,AC,OKPO,NAME,ND,DATA_D,DK,MFO_KOR,AC_KOR,OKPO_KOR,NAME_KOR,CUR_TAG,CUR_CODE,CUR_RATE,AC_CUR_TAG,AccountCur,SUM_PD_NOM,SUM_PD_EQ,PURPOSE,IN_RST_NO,IN_RST_EQ,OUT_RST_NO,OUT_RST_EQ,DB_SUM_NOM,CR_SUM_NOM,DB_SUM_EQ,CR_SUM_EQ,DAT_OST_OB,DB_IBAN,CR_IBAN
PAYSYS_UKRGASBANKCSV_FIELDS_SEQUENCESUM_PD_NOM,DATA_VYP,OKPO_KOR,PURPOSE,NAME_KOR,ND
PAYSYS_UKRGASBANKCSV_FILE_ENCODEwindows-1251:utf-8
PAYSYS_UKRGASBANKCSV_HEADER1
PAYSYS_UKRGASBANKCSV_IMPORT_FIELDND
PAYSYS_UKRGASBANKCSV_IMPORT_FIELDSSUM:SUM_PD_NOM;DATE:DATA_VYP;DESC:PURPOSE
PAYSYS_UKRGASBANKCSV_STATEMENTS_CELL_PREPROCESS(^")|("$)|("")
PAYSYS_UKRGASBANKCSV_STATEMENTS_DELIMITER;
PAYSYS_UKRGASBANKCSV_TRANSACTION_AS_MD51
PAYSYS_UKRGASBANKCSV_TRANSACTION_FORMATfield:ND;field:SUM_PD_NOM;field:DATA_VYP;field:PURPOSE


УкрСиббанк



PAYSYS_UKRSIBBANKCSV_COLUMN_NAMESСума,Дата,ЄДРПОУ/ІПН,Призначення,Назва компанії(банку) платника,Номер транзакції
PAYSYS_UKRSIBBANKCSV_DATE_FORMAT%d.%m.%Y %H:%M
PAYSYS_UKRSIBBANKCSV_DEBIT_PAYMENTS1:DEBIT
PAYSYS_UKRSIBBANKCSV_EDRPOU_CHECKCORRESPONDENT_EDRPOU
PAYSYS_UKRSIBBANKCSV_FIELDSEDRPOU,MFO,ACCOUNT,CURRENCY,TRANSACTION_DATE,OPERATION_CODE,BANK_MFO,BANK_NAME,CORRESPONDENT_ACCOUNT,CORRESPONDENT_EDRPOU,CORRESPONDENT_NAME,DOCUMENT_NUMBER,DOCUMENT_DATE,DEBIT,CREDIT,PAYMENT_PURPOSE,HRYVNIA_COVERAGE
PAYSYS_UKRSIBBANKCSV_FIELDS_SEQUENCECREDIT,TRANSACTION_DATE,CORRESPONDENT_EDRPOU,PAYMENT_PURPOSE,CORRESPONDENT_NAME,DOCUMENT_NUMBER
PAYSYS_UKRSIBBANKCSV_FILE_ENCODEwindows-1251:utf-8
PAYSYS_UKRSIBBANKCSV_HEADER1
PAYSYS_UKRSIBBANKCSV_IMPORT_FIELDDOCUMENT_NUMBER
PAYSYS_UKRSIBBANKCSV_IMPORT_FIELDSSUM:CREDIT;DATE:TRANSACTION_DATE;DESC:PAYMENT_PURPOSE
PAYSYS_UKRSIBBANKCSV_STATEMENTS_CELL_PREPROCESS(^")|("$)|("")
PAYSYS_UKRSIBBANKCSV_STATEMENTS_DELIMITER;
PAYSYS_UKRSIBBANKCSV_TRANSACTION_AS_MD51
PAYSYS_UKRSIBBANKCSV_TRANSACTION_FORMATfield:PAYMENT_PURPOSE;field:CREDIT;field:TRANSACTION_DATE


ПравексБанк



PAYSYS_PRAVEXBANKCSV_COLUMN_NAMESСума,Дата,ЄДРПОУ/ІПН,Призначення,Назва компанії(банку) платника,Номер транзакції
PAYSYS_PRAVEXBANKCSV_DATE_FORMAT%d.%m.%Y %H:%M
PAYSYS_PRAVEXBANKCSV_DEBIT_PAYMENTS1:DEBIT
PAYSYS_PRAVEXBANKCSV_EDRPOU_CHECKCORRESPONDENT_EDRPOU
PAYSYS_PRAVEXBANKCSV_FIELDSEDRPOU,MFO,ACCOUNT,CURRENCY,TRANSACTION_DATE,OPERATION_CODE,BANK_MFO,BANK_NAME,CORRESPONDENT_ACCOUNT,CORRESPONDENT_EDRPOU,CORRESPONDENT_NAME,DOCUMENT_NUMBER,DOCUMENT_DATE,DEBIT,CREDIT,PAYMENT_PURPOSE,HRYVNIA_COVERAGE
PAYSYS_PRAVEXBANKCSV_FIELDS_SEQUENCECREDIT,TRANSACTION_DATE,CORRESPONDENT_EDRPOU,PAYMENT_PURPOSE,CORRESPONDENT_NAME,DOCUMENT_NUMBER
PAYSYS_PRAVEXBANKCSV_FILE_ENCODEwindows-1251:utf-8
PAYSYS_PRAVEXBANKCSV_FOOTER2
PAYSYS_PRAVEXBANKCSV_HEADER1
PAYSYS_PRAVEXBANKCSV_IMPORT_FIELDDOCUMENT_NUMBER
PAYSYS_PRAVEXBANKCSV_IMPORT_FIELDSSUM:CREDIT;DATE:TRANSACTION_DATE;DESC:PAYMENT_PURPOSE
PAYSYS_PRAVEXBANKCSV_STATEMENTS_CELL_PREPROCESS(^")|("$)|("")
PAYSYS_PRAVEXBANKCSV_STATEMENTS_DELIMITER;
PAYSYS_PRAVEXBANKCSV_TRANSACTION_AS_MD51
PAYSYS_PRAVEXBANKCSV_TRANSACTION_FORMATfield:PAYMENT_PURPOSE;field:CREDIT;field:TRANSACTION_DATE