Приложение № 2
к Договору № ____о взаимодействии между операторами по переводу
денежных средств от «__» __________ 201__года. Акт
ОКАЗАННЫХ УСЛУГ № ______
по Договору № ____о взаимодействии между операторами по переводу денежных средств от «__» __________ 201__года
за период с «__» ___________ 201__г. по «__» ____________ 201__г. ОАО «Петербургский социальный коммерческий банк», именуемое в дальнейшем «Сторона 1», в лице ______________________________________________, действующего на основании _________________________, и
__________________________________________________________, именуемое в дальнейшем «Сторона 2», в лице __________________________________, действующего на основании ______________________________________________, совместно именуемые «Стороны», в соответствии с Договором № ____о взаимодействии между операторами по переводу денежных средств от «__» __________ 201__года составили настоящий Акт о следующем:
№
п/п
| Наименование
Поставщика, в пользу которого осуществлен перевод денежных средств
| Сумма принятых денежных средств (руб.)
| Вознаграждение Стороны 2,
(НДС не облагается)
| Вознаграждение Стороны 1,
(НДС не облагается)
| %
| Общая сумма (руб.)
| %
| Общая сумма (руб.)
| 1
| Поставщик 1
|
|
|
|
|
| 2
| Поставщик 2
|
|
|
|
|
| 3
| ХХХХХ
|
|
|
|
|
| Итого:
|
|
|
|
|
|
Общая сумма осуществленных Стороной 2 переводов денежных средств по распоряжениям Плательщиков: ___________________ (сумма прописью) руб.
Общая сумма денежных средств, перечисленных Стороной 2 на Счет Расчетов, составляет: ___________________ (сумма прописью) руб.
Вознаграждение Стороны 2 за отчетный период составляет: ___________________ (сумма прописью) руб. НДС не облагается.
Вознаграждение Стороны 1 за отчетный период составляет: ___________________ (сумма прописью) руб. НДС не облагается.
Остаток на конец Отчетного периода по Счету Расчетов составляет:__________________(сумма прописью).
Задолженность Стороны 1 по выплаченному вознаграждению Стороне 2 на конец отчетного периода___________________(сумма прописью). Обязательства сторон в соответствии с условиями Договора выполнены полностью и в срок, Стороны претензий друг к другу не имеют.
Акт составлен и подписан в соответствии с условиями Договора № _________ о взаимодействии между операторами по переводу денежных средств от «__» _________ 201__года, заключенного вышеуказанными Сторонами, и является основанием для проведения взаиморасчетов.
-
От Стороны 1:
|
| От Стороны 2:
|
_____________________
|
|
_________________________
| м.п.
|
| м.п.
|
Форма настоящего Акта утверждена Сторонами в качестве примерной.
-
От Стороны 1:
|
| От Стороны 2:
|
___________________________
|
| _________________________
| м.п.
|
| м.п.
| Приложение № 3
к Договору № ____о взаимодействии между операторами по переводу
денежных средств от «__» __________ 201__года. ПОРЯДОК ИНФОРМАЦИОННО-ТЕХНОЛОГИЧЕСКОГО ВЗАИМОДЕЙСТВИЯ.
Информационно-технологическое взаимодействие между Стороной 1 и Стороной 2 осуществляется по протоколу eKassir v.2.
Здесь, и далее по тексту, под «eKassir» понимается программно-аппаратный комплекс - совокупность аппаратных средств, каналов соединения и прочей технологической инфраструктуры Стороны 1, необходимой для построения и эксплуатации автоматизированной системы обмена информацией между Стороной 1 и Стороной 2 в рамках настоящего Договора.
Общее описание
Протокол eKassir v2 предназначен для осуществления переводов с использованием терминалов, точек с кассиром, других процессинговых центров.
Особенности:
1. В качестве транспортного протокола используется HTTP/HTTPS.
2. Запросы и ответы представляют собой xml-сообщения.
3. Протокол не использует пакетный режим. Один запрос – одна операция. В ответе приходит результат выполнения операции. Аутентификация осуществляется по ЭЦП. Каждая точка подписывает запрос своим ключом RSA1024. (Есть возможность делать подпись одним ключом, но тогда в запросе необходимо указывать свой id точки приема переводов (ext_point_id), если точка, ключом которой подписывается сообщение, заблокирована, то сервер отказывает клиенту, даже если точка, внешний id которой указан в протоколе, не заблокирована. Это позволяет быстро отключать прием переводов с точек, на которых есть подозрение, что ключ скомпрометирован). Транспортный уровень
Общие сведения
Все запросы передаются по протоколу http (версия 1.1, RFC 2616) методом POST. В случае использования другого метода сервер eKassir отвечает ошибкой 405 (Method not allowed). Сообщение протокола eKassir v2 передается в теле запроса. Аутенитификация осуществляется по ЭЦП и идентификатору точки в заголовке http. В случае, если не прошла аутентификация, сервер eKassir ответит ошибкой 401 (Unauthorized), а в теле ответа передаст текстовое описание ошибки.
Протокол eKassir v2 не поддерживает разделенные (chunked) данные. В случае получения запроса с разделенными данными или с длиной запроса 0 байт сервер отвечает ошибкой 415 (Unsupported media type). При обработке запроса может возникнуть внутренняя ошибка сервера. В этом случае сервер отвечает ошибкой 500 (Internal server error), а в теле ответа содержится информация об ошибке сервера. По протоколу eKassir v2 длина запроса на сервер ограничена. По умолчанию ограничение — 10000 байт. Это значение может быть изменено администратором eKassir. В случае превышения ограничения сервер отвечает ошибкой 413 (Request entity too large).
Управление таймаутами
Начиная с версии 2.5.2 протокол eKassir V2 поддерживает возможность управления таймаутами обработки запросов. Для этой цели выделен заголовок eKassir-ExpectedTimeout. Его значение – таймаут в миллисекундах, который ожидается клиентской стороной, при посылке запроса. В случае, если заголовок в запросе не указан, назначается таймаут по умолчанию 180000 миллисекунд (3 минуты). Если после прихода на сервер запроса от точки запрос не попал в обработку в течение указанного времени, запрос вообще не будет обрабатываться eKassir PaySystem Server. Сервер ответит ошибкой 503 (Service Unavailable).
Кодировка
Сообщения протокола могут быть переданы на сервер eKassir в любой кодировке на усмотрение разработчика. Название кодировки, в которой представлено сообщение, передается в заголовке Content-Type. Также в этом заголовке передается media-type, который по протоколу eKassir должен быть text/xml.
Например, значение заголовка для кодировки utf-8 будет таким:
text/xml; charset=utf-8
В случае отсутствия кодировки в запросе или неверного названия кодировки (например, utg-8 вместо utf-8) будет использоваться кодировка по умолчанию. Необходимо уточнить ее у администратора eKassir.
Ответ сервера передается в кодировке запроса.
Аутентификация
Для аутентификации на сервер eKassir в каждом запросе должны быть переданы идентификатор точки в eKassir, подпись передаваемого сообщения и тип хеш-функции. Идентификатор точки eKassir — целое положительное число. Подпись формируется по следующему алгоритму: 1. Вычисляется хеш MD5 (или SHA1) сообщения
2. Полученный хеш шифруется секретным ключем RSA
3. Результат обрабатывается по алгоритму Base64
Подпись вычисляется перед сжатием сообщения. Идентификатор, подпись и тип хеш-функции передаются в следующих заголовках http:
eKassir-PointID
| Идентификатор точки в eKassir
| eKassir-Signature
| Подпись сообщения
| eKassir-HashType
| Использованная хеш-функция:
- MD5
- SHA1
Заголовок необязательный. По умолчанию MD5.
|
Хеш необходимо вычислять от сообщения транспортного уровня (массива байт, передаваемого в канал связи), а не от строкового сообщения. Сжатие запросов и ответов
Перед отправкой сообщения по сети клиент может сжать данные по алгоритму gzip или deflate. Сжатие делается после формирования ЭЦП. Для того чтобы сообщить серверу о методе сжатия запроса, необходимо добавить заголовок Content-Encoding в http-запрос со значением gzip или deflate соответственно. Если серверу не удается произвести декомпрессию принятых данных или указано неверное значение заголовка Content-Encoding, сервер ответит ошибкой 415 (Unsupported media type).
Для уменьшения трафика клиент также может управлять сжатием ответов сервера. Для этого используется заголовок Accept-Encoding. В заголовке указывается способ сжатия ответа сервера gzip или deflate (может использоваться перечисление через ','(запятую), тогда сервер сам выберет способ сжатия). Если в запросе указан способ, который не поддерживается, сервер отвечает ошибкой 406 (Not acceptable). В заголовке ответа Content-Encoding сервер указывает способ, которым сжат ответ. Команда отправки перевода
Запрос Запрос на оплату наличными:
Запрос при оплате картой: Тег – перевод со следующими атрибутами:
Атрибут
| Тип
| Описание
| id
| uniqueidentifier
| Уникальный номер транзакции
Обязательный.
| ext_point_id
| Varchar(36)
| Id точки на стороне клиента(дилера). Используется для передачи номера точки в случае, если сообщения подписываются одним и тем же ключом.
Параметр игнорируется, если используется аутентификация по паролю.
Необязательный.
| ticket
| int
| Номер документа.
Необязательный.
| service
| varchar(20)
| Alias (псевдоним) услуги
Обязательный.
| account
| varchar(200)
| номер телефона, счета и т.д. (в случае продажи карт предоплаты – логин карты)
Проходит дополнительную проверку на стороне шлюза.
Обязательный.
| total
| Numeric(18,2)
| сумма, которую оплатили (вместе с комиссией терминала)
Обязательный.
| value
| Numeric(18,2)
| сумма, которую необходимо зачислить получателю перевода (без комиссии терминала). Необязательный атрибут. Необязательный. По умолчанию равен total.
| balance
| Numeric(18,2)
| Сдача, возникшая при оплате. Доступен только терминалам.
Необязательный.
| source
| Varchar(200)
| Номера чеков, сдачу с которых надо списать, перечисленные через '|'. Доступен только терминалам.
Необязательный.
| number
| Varchar(20)
| Номер чека, который печатается в штрих-коде. В текущей версии состоит из номера терминала, номера чека на терминале. Если чек со сдачей, то он дополняется пин-кодом (4 символа), вводимым плательщиком (пин не печатается на чеке).
Необязательный.
| date
| DateTime
| Время приема перевода на точке оплаты. Формат – ММ/ДД/ГГГГ чч:мм:сс
Необязательный.
| reject_payment
| Boolean
| True (или 1) – указание серверу отвергнуть перевод без проведения.
False (или 0) – обычное проведение перевода.
Необязательный. По умолчанию False.
| encashment_number
| int
| Номер инкассации, в которую попадает перевод на терминале. Используется, если точка подключена непосредственно к eKassir PaySystem. Номер инкассации используется, если перевод совершен наличными.
Целое положительное число.
Необязательный. По умолчанию 0.
|
Могут быть дополнительные атрибуты, если услуга подразумевает их передачу.
При оплате по карте должен быть тег (содержит сведения о покупке) c атрибутами:
pos_id
| Varchar(20)
| Id точки оплаты в карточном процессинге.
Обязательный.
| id
| Varchar(20)
| Номер (id) покупки, отправленный в карточный процессинг.
Обязательный.
| time
| DateTime
| Время совершения операции по карте (в карточном процессинге) в формате ГГГГ/ММ/ДД ЧЧ:мм:сс
Обязательный.
| card_number
| Varchar(19)
| Маскированный номер карты (ISO 7812) длиной до 19 символов. Маскируются символы, кроме первых 6 (Bank Identification Number) и последних 4, например 123456******7890. Если маскирование не сделано клиентским ПО, eKassir сохранит маскированный номер карты. Про номера банковских карт можно прочитать здесь.
Обязательный.
| type
| int
| Тип операции:
1. Простая продажа.
2. Резервирование средств на карте до завершения обработки перевода сервером eKassir. При оплате по такой схеме, терминал отслеживает статус перевода на сервере и в случае успешного завершения подтверждает покупку. Если по каким-то причинам перевод на сервере eKassir не прошел (Отвергнут), терминал возвращает зарезервированные средства плательщику. Необязательный. По умолчанию 1.
| response_code
| Varchar(10)
| Код ответа карточного процессинга на запрос проведения перевода.
Обязательный.
| comment
| Varchar(200)
| Комментарий к коду ответа.
Необязательный. По умолчанию пустая строка.
| success
| Boolean
| Успешна ли операция по карте (1 – успешна, 0 – нет). Необходимо, чтобы сохранять в БД eKassir неуспешные переводы по картам для дальнейшего изучения (например, когда терминал изъял карту по команде карточного процессинга). Перевод по такой операции будет отвергнут в БД eKassir.
Необязательный. По умолчанию 1.
| approval_code
| Varchar(40)
| Код подтверждения ПЦ.
Необязательный.
|
Ответ
Тег – результат со следующими атрибутами (их может быть несколько):
Атрибут
| Тип
| Описание
| id
| uniqueidentifier
| Уникальный номер транзакции.
| state
| int
| Статус перевода / код ответа.
| state_time
| datetime
| Время и дата статуса в формате
ГГГГ/ММ/ДД чч:мм:сс
Время по часовой зоне процессинга
| serial
| int
| Id перевод в БД eKassir
| comment
| varchar
| Комментарий к статусу. Может отсутствовать!
|
В ответе могут быть дополнительные атрибуты, зависит от услуги. |