Money trasfer xml protocol UPC all 2.0
UKRAINIAN PROCESSING CENTER
Kyiv
Требования к предоставлению сервис-провайдерами
услуг денежных переводов
Visa PP Money Transfer и MC Money Send
в интернете
Версия 1.3
2019
Данный документ предназначен для использования сервис-провайдерами, предоставляющими услуги денежных переводов от имени банка эквайера в сети «Интернет» через интерфейс УПЦ eCommerce Connect Gateway (ECG). Документ описывает требования к предоставлению услуг денежных переводов в интернете и использование интерфейсов сервиса ECG.
Словарь
Сервис-провайдер - компания, реализующая интерфейс непосредственного взаимодействия с держателем карты от имени банка-эквайера.
Программы Visa Personal Payments Money Transfer (VPP MT) и MasterCard Money Send (MC MS) обеспечивают сервис по переводу денежных средств с использованием платежных карт (Visa или MasterСard) посредством транзакций Funding и Payment.
ECG (eCommerce Connect Gateway) – сервис УПЦ, который предоставляет интерфейс для осуществления транзакций в интернете, производит закрытие бизнес дня и предоставляет сервис мониторинга и предотвращения мошенничества таких транзакций.
Funding (Account Funding Transaction в терминологии VISA) — тип транзакции, который используется для списания денежных средств с карточного счета отправителя. Эмитент отправителя авторизует списание суммы денежного перевода и применяемых комиссий и дебетует счет отправителя.
Payment (Original Credit Transaction в терминологии VISA) — тип транзакции, который используется для пересылки денежных средств на карту получателя. Эмитент получателя на основании платежной транзакции кредитует счет получателя на сумму денежного перевода.
Card-to-Card – перевод средств с карты на карту. Состоит из двух связанных транзакций Funding и Payment.
Card-to-Card Local – тип перевода с карты на карту, который может быть выполнен, если банк-эквайер сервис-провайдера является эмитентом карты получателя и карты отправителя. Данный тип перевода не использует технологии VPP MT и MC MS, а используется та же технология перевода, что и при аналогичных переводах в банкоматах. Данный тип переводов производится также в online, то есть, средства на карту получателя поступают сразу, но в расчеты такие транзакции не выставляются. Банк рассчитывает эти транзакции самостоятельно на основании Posting файлов.
Account-to-Card – перевод средств с банковского счета физического лица на платёжную карту получателя. Состоит из одной транзакции Payment.
Card-to-Account - перевод средств с платёжной карты отправителя на счёт физического/юридического лица. Состоит из одной транзакции Funding.
Reversal on funding - тип транзакции, который используется для возврата денежных средств на карточный счет. Операция привязана к Funding.
MCC — Merchant Category Code. представляет собой 4-значный номер,
классифицирующий вид деятельности торговой точки в операции оплаты по банковским картам в торгово-сервисном предприятии при электронной передаче информации в рамках транзакции за предоставляемые товары или услуги.
МПС – Международная Платежная Система (Visa, MasterCard).
Типы переводов, доступные сервис-провайдеру
В настоящий момент УПЦ поддерживает денежные переводы только внутри одной страны. Контроль выполнения этого правила выполняет интерфейс ECG.
- Перевод с карты на карту (Card-to-Сard) с использованием технологий VPP MT и/или MC MS, или внутрибанковский перевод (Card-to-Card Local).
- Платеж с карты отправителя в пользу юридических/физических лиц. Выполняется отдельной транзакцией Funding.
- Платеж на карту получателя. Выполняется отдельной транзакцией Payment.
Банк-эквайер имеет право применить в этих типах транзакций эквайерские комиссионные (кроме транзакции Card-to-Card Local).
Требования к проведению операций денежных переводов в Украине, осуществляемых через интерфейс ECG
- Список необходимых проверок в момент проведения транзакций владельцем карты:
a) Размер лимитов по сумме операции. Ограничения по сумме одной операции и по сумме за период времени устанавливает банк-эквайер и поддерживает сервиспровайдер.
Актуальные на 1.04.2013 лимиты МПС:
Visa - USD $2500 в эквиваленте гривны для одной операции безналичного перевода.
МС - сумма операций денежных переводов для одного держателя карты в пределах календарного месяца не должна превышать USD $2500 в эквиваленте гривны.
b) Сервис-провайдер должен получить фамилию, имя, отчество и адрес отправителя для транзакции перевода по карте MasterСard в случае, если сумма перевода превышает установленный платежной системой лимит в размере 5 000 гривен, и передавать полученные данные в транзакции. Если выполняемый перевод является локальным внутри одного банка, то эти данные запрашивать и передавать нет необходимости.
c) Эмитент карты отправителя и эмитент получателя являются резидентами страны эквайера. Валюта перевода только локальная (для Украины – гривна).
d) Ввиду особых требований MasterСard к проведению расчетов по транзакциям MoneySend вопрос отправки Payment транзакций по MasterСard согласовывается с банком-эквайером в индивидуальном порядке. По умолчанию, такие транзакции выполняются только для карточек банка-эквайера.
e) Банк-эквайер может устанавливать более низкие значения лимитов по суммам операций, а также вводить дополнительные ограничения и правила.
- При осуществлении всех видов операций денежного перевода требуется соблюдать следующие правила МПС:
a) сообщать клиенту-отправителю:
- валюту выполняемой операции перевода;
- сумму рассчитанных комиссионных в валюте перевода;
- ограничение на сумму перевода;
- перевод осуществляется между картами, эмитированными только украинскими банками.
- срок доставки перевода зависит от типа перевода, но не более двух рабочих дней;
- реквизиты службы клиентской поддержки. Если сервис-провайдер не имеет собственной службы поддержки, то необходимо предоставлять контакты службы поддержки банка-эквайера.
b) для подтверждения операции перевода клиентом-отправителем отображать реквизиты операции:
- дата и время;
- номера карт отправителя и получателя;
- сумма и валюта перевода;
- сумма и валюта комиссии;
- общая сумма и валюта операции перевода;
- описание операции или назначение перевода.
c) исключить возможность случайного перевода (запрашивать подтверждение на перевод у отправителя). Транзакция отправляется на авторизацию только после подтверждения клиентом-отправителем реквизитов перевода;
d) исключить возможность случайного повторного перевода (например, отправитель случайно повторно нажал на кнопку “Отправить”)
e) сообщать клиенту-отправителю код(ы) авторизации (Approval Code), если транзакция была авторизована успешно.
f) сообщать клиенту-отправителю информацию в соответствии с действующим законодательством Украины. Например, «Данная операция не может быть связана с коммерческой деятельностью».
3. Чек в бумажном и/или электронном виде формируется в обязательном порядке и должен содержать информацию, перечисленную в пп. 2b и 2e. Согласно требованиям стандарта PCI DSS, на чек выводятся замаскированные номера карточек. Если операция была не успешной, на чеке должна быть отражена причина отказа.
Действия сервис-провайдера и банка-эквайера для запуска данного сервиса
- Сервис-провайдеру необходимо согласовать правила работы с банком-эквайером (лимиты, комиссионные и пр.).
- Для выполнения Funding и Payment по картам Visa необходимо зарегистрировать клише с MCC 6012. Для выполнения переводов по картам MasterCard, для Funding - зарегистрировать клише c MCC 6538, для Domestic Payment — MCC 6536. Для выполнения денежных переводов необходимо выбрать одно из зарегистрированных клише в качестве основного. Основное клише используется для идентификации торговца в ECG и указывается во всех запросах протокола, также, по основному клише производятся переводы Card-to-Card Local. Сервис-провайдеру следует учитывать, что клише для авторизации и выполнения расчетов выбирается интерфейсом ECG из зарегистрированных, исходя из типа транзакции и типа карты. Например, если выполнить перевод Card-to-Card с карты Visa на карту MasterCard, то в авторизационной базе и соответственно в расчетах, будет одна транзакция Funding по клише Visa с MCC 6012 и одна транзакция Payment по клише MasterCard с MCC 6536.
- Сервис-провайдер и банк-эквайер несут ответственность за выполнение требований международных платежных систем и национального законодательства к денежным переводам. Сервис-провайдер самостоятельно отслеживают изменения в национальном законодательстве, относящиеся к переводам денежных средств, и своевременно их применяют.
- При предоставлении услуг денежных переводов необходимо обеспечить соблюдение стандартов PCI DSS.
Общее описание взаимодействия посредством протокола
Взаимодействие с протоколом осуществляется посредством HTTP POST запросов/ответов. Данные запросов и ответов передаются в формате XML.
Формирование запроса
Для всех видов запросов выделяются общие обязательные данные, к которым относятся:
идентификаторы основного терминала сервис-провайдера, MerchantId и TerminalId. Поле TerminalId является опциональным, поскольку к одному идентификатору MerchantId привязывается только один TerminalId.
идентификатор транзакции, который устанавливается сервис-провайдером, TrackingId. Данные TrackingId должны однозначно идентифицировать транзакции перевода средств. Тот же TrackingId, что и в транзакции перевода средств, может использоваться в дополнительных сервисах, например, при определении типа перевода с карты на карту. Так же, TrackingId используется для получения статуса завершенной транзакции. Signature – криптографическая подпись запроса. Общие теги запроса:
<Request root tag>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId>fd4e1c67a2d28fced849ee1bb76e7391b93eb12</TrackingId>
...
<Signature></Signature>
</Request root tag>
Обработка ответа
Независимо от типа запроса, ответ обязательно будет содержать Signature и Status. Signature – криптографическая подпись ответа.
Status – статус выполнения запроса, который в свою очередь состоит из:
Code – трехзначный код, который определяет успешность выполнения запроса или поясняет причину ошибки или отказа.
Message – текстовое сообщение в произвольной форме, которое детализирует причину получения того, или иного кода отказа или ошибки.
Общие тэги ответа:
<Response root tag>
<Status>
<Code>000</Code>
<Message> status message...</Message>
</Status>
<Signature></Signature>
</Response root tag>
Механизмы и типы переводов
Local – тип перевода с карты на карту, который осуществляется одной транзакцией внутри одного банка. Внутрибанковский перевод возможен только в том случае, если карта получателя и карта отправителя принадлежат банку-эквайеру. Если проведение Local перевода невозможно или запрещено сервис-провайдеру, то тип перевода будет определен как Domestic.
Domestic – внутригосударственный перевод между картами разных банков. Банки-эмитенты являются резидентами страны банка-эквайера. Перевод осуществляется с использованием VPP MT и/или MC MS.
Cross-border – международный перевод. Банк-эмитент не является резидентом страны банкаэквайера. Перевод осуществляется с использованием VPP MT и/или MC MS. В настоящий момент в УПЦ не поддерживается.
Сервис CardZone
Сервис позволяет определить тип перевода (local, domestic или cross-board), принадлежность карты к платёжной системе, а также код карточного продукта. CardZone может использоваться как для Card-to-Card, так и для Card-To-Account и Account-To-Card. По данным ответа CardZone сервис-провайдер производит расчет суммы комиссионных.
Пример запроса к сервису CardZone и ответа от него для перевода Card-to-Card:
<CardZoneRequest>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId>fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId>
<CardFromNumber>4999999999990011</CardFromNumber>
<CardToNumber>5559490000000148</CardToNumber>
</CardZoneRequest>
CardFromNumber – номер карты с которой осуществляется перевод. CardToNumber - номер карты на которую осуществляется перевод.
<CardZoneResponse>
<Status>
<Code>000</Code>
<Message>successfully</Message>
</Status>
<OperationZone>DOMESTIC</OperationZone>
<CardFromInfo>
<CountryCode>UAH</CountryCode>
<CardType>C</CardType>
<Brand>VISA</Brand>
<CardZone>DOMESTIC</CardZone>
</CardFromInfo>
<CardToInfo>
<CountryCode>UAH</CountryCode>
<CardType>MCS</CardType>
<Brand>MAST</Brand>
<CardZone>LOCAL</CardZone>
</CardToInfo>
</CardZoneResponse>
OperationZone – тип перевода {local, domestis, cross-board} для составной транзакции перевода средств.
CardFromInfo – информация по карте с которой списываются средства и тип перевода для операции Funding.
CardToInfo – информация по карте на которую зачисляются средства и тип перевода для операции Payment.
CardFromInfo и CardToInfo в свою очередь, содержат:
CountryCode - код страны банка-эмитента карты согласно ISO 3166-1 alpha-3;
Brand – код платежной системы {VISA, MAST, MAES}; CardType - код карточного продукта;
CardZone - тип перевода для данной карты.
Использование CardZone сервиса опционально и если, сервис-провайдер уже владеет информацией о типе перевода, то CardZoneRequest делать не обязательно. В случае перевода Card-to-Account в запросе CardZoneRequest можно указывать только CardFromNumber. Соответственно, в случае перевода Account-to-Card можно указывать только CardToNumber.
Пример запроса и ответа CardZone для Card-to-Account:
<CardZoneRequest>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId>fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId>
<CardFromNumber>4999999999990011</CardFromNumber>
</CardZoneRequest>
<CardZoneResponse>
<Status>
<Code>000</Code>
<Message>successfully</Message>
</Status>
<OperationZone>DOMESTIC</OperationZone>
<CardFromInfo>
<CountryCode>UAH</CountryCode>
<CardType>C</CardType>
<Brand>VISA</Brand>
<CardZone>DOMESTIC</CardZone>
</CardFromInfo>
</CardZoneResponse>
Перевод средств с использованием технологий VPP MT и MC MS Структура запроса для перевода Card-to-Card:
<TransactionRequest>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId>fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId> <Amount>...</Amount>
<Funding>...</Funding>
<Payment>...</Payment>
</TransactionRequest>
Структура запроса для перевода Card-to-Account:
<TransactionRequest>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId>fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId> <Amount>...</Amount>
<Funding>...</Funding>
</TransactionRequest>
Структура запроса для reversal on funding
<ReversalRequest>
<MerchantId>9752130</MerchantId>
<TerminalId> E9879930</TerminalId>
<TrackingId> fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId>
<Amount>…</Amount>
<Funding>…</Funding>
</ReversalRequest>
Структура запроса для перевода Account-to-Card:
<TransactionRequest>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId>fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId> <Amount>...</Amount>
<Payment>...</Payment>
</TransactionRequest>
Данные Amount
Amount содержит сумму, валюту перевода и сумму комиссионных за перевод. Сумма перевода и сумма комиссионных указывается целым числом в минимальных единицах валюты. Числовой код валюты согласно стандарту ISO 4217.
Пример для перевода 100 гривен с комиссией в размере 1 гривна:
<Amount>
<Value>10000</Value>
<CurrencyCode>980</CurrencyCode>
<Surcharge>100</Surcharge>
</Amount>
Данные Funding
Funding используется для переводов Card-to-Card и Card-to-Aссount. Funding состоит из PARes или CVV и CardInfo. Использование PARes или CVV зависит от схемы аутентификации держателя карты. PARes следует указывать если держатель карты прошел аутентификацию по 3D Secure (Verified by VISA/MasterCard SecureCode). PARes является ответом аутентификации пользователя на ACS (Access Control Server).
<Funding>
<PARes>
<Status>Y</Status>
<CAVV>AAABCFg3aUFBSBAQlTdpEFX/7P4=</CAVV>
<ECI>05</ECI>
<CavvAlgorithm>2</CavvAlgorithm>
</PARes>
<CVV>123</CVV>
<CardInfo>
<CardNumber>4999999999990011</CardNumber>
<ExpYear>2017</ExpYear>
<ExpMonth>12</ExpMonth>
</CardInfo>
</Funding>
(В случае отсутствия тега транзакция будет маркирована ECI 07)
Дополнительно торговец должен запросить у клиента CVV2 код и подставить значение в тег <CVNum>***</CVNum>.
Если карта проходить аутентификацию на ACS MC или VISA (не ACS банка емитента), то в результате получаем данние для заполнения тега PARes со статусом A (*Attempt = Обработка данных аутентификации не может быть завершена)
Данные для Reversal on funding
Поля заполняются на основании оригинальной операции Funding
<ReversalRequest>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<TrackingId> fd4e1c67a2846ced849ee1bb76e739asd3563eb12</TrackingId>
<Amount>
<Value>100</Value>
<CurrencyCode>980</CurrencyCode>
<Surcharge>100</Surcharge>
</Amount>
<Funding>
<ApprovalCode>121557</ApprovalCode>
<RRN>509213298140</RRN>
</Funding>
</ReversalRequest>
Данные Payment
Payment используется для переводов Card-to-Card и Account-to-Card, Payment содержит номер карты получателя перевода.
Пример Payment для Card-to-Card перевода:
<Payment>
<RecipientCardNumber>555949000000148</RecipientCardNumber> </Payment>
В некоторых случаях, таких как, превышение лимита на сумму перевода или Cross-board перевод, необходимо указывать персональные данные отправителя средств в SenderInfo. Пример Payment для Card-to-Card перевода с персональными данными:
<Payment>
<SenderInfo>
<Name>Ivan Ivanov</Name>
<Address>
<Zip>01001</Zip>
<Country>UAH</Country>
<City>Kiev</City>
<Street>Moskovsky av., 9</Street>
</Address>
</SenderInfo>
<RecipientCardNumber>5559490000000148</RecipientCardNumber>
</Payment>
Для переводов Account-to-Card Payment должен содержать номер банковского счета отправителя (сервис-провайдера).
Пример Payment для Account-to-Card:
<Payment>
<RecipientCardNumber>5559490000000148</RecipientCardNumber>
<SenderAccountNumber>26385001215533</SenderAccountNumber> </Payment>
Ответ на Payment и Funding
Ответ на запросы Payment и на Funding содержат результаты авторизации по операциям Payment и Funding, а также клише, по которому была совершена операция. Ответ на запросы Payment и на Funding являются практически идентичными, за исключением поля CVResult в FundingResult. CVResult присутсвует в ответе в том случае, если Funding авторизуется с CVV. Ответ от авторизационной системы содержится в FundingResult и PaymentResult.
Date – время выполнения транзакии Payment или Funding в формате YYYY-MM-DD HH:MI:SS +TimeZone;
ApprovalCode – код авторизации;
RRN – Retrieval Reference Number;
AuthCode – код ответа авторизационной системы;
MerchantCliche — клише, по которому была выполнена транзакция.
Пример ответа на Card-to-Card перевод:
<TransactionResponse>
<Status>
<Code>000</Code>
<Message>transaction complete</Message>
</Status>
<FundingResult>
<Date>2013-07-15 18:05:43 +0000</Date>
<ApprovalCode>565940</ApprovalCode>
<RRN>070513414191</RRN>
<CVResult>M</CVResult>
<AuthCode>000</AuthCode>
<MerchantCliche>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<MCC>6012</MCC>
</MerchantCliche>
</FundingResult>
<PaymentResult>
<Date>2013-07-15 18:05:44 +0000</Date>
<ApprovalCode>949777</ApprovalCode>
<RRN>071002414201</RRN>
<AuthCode>000</AuthCode>
<MerchantCliche>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<MCC>6012</MCC>
</MerchantCliche>
</PaymentResult>
</TransactionResponse>
Ответ на Reversal on funding
Поля в ответе идентичны к ответам на Payment и Funding операции.
<ReversalResponse>
<TrackingId>trantest1</TrackingId>
<Status>
<Code>000</Code>
<Message>Approved</Message>
</Status>
<ReversalResult>
<Date>2015-04-02 13:42:16 +0300</Date>
<MerchantCliche>
<MerchantId>9752130</MerchantId>
<TerminalId>E9879930</TerminalId>
<MCC>4829</MCC>
</MerchantCliche>
<ApprovalCode>121557</ApprovalCode>
<AuthCode>000</AuthCode>
<RRN>509213298140</RRN>
</ReversalResult>
<Signature></Signature>
</ReversalResponse>
Порядок выполнения возврата средств.
Возврат средств выполняется по инициативе сервис-провайдера.
Так же реверсал на транзакцию Funding выполняется автоматически в случае перевода с карты на карту, если после успешной авторизации транзакции Funding транзакция Payment была отклонена эмитентом или платежной системой. В этом случае реверсал на транзакцию Funding выполняется автоматически.