Спецификация по взаимодействию торговца с ПО ConcordPay ver 1.2.

Спецификация по взаимодействию торговца с ПО ConcordPay ver 1.2.        1

Оплата на платежной странице процессинга        3

Callback вызов для отправки уведомления о статусе платежа        4

Операция покупки через Apple Pay        5

Валидация мерчанта Apple Pay (api/apple/validate).        6

Подтверждение платежа Apple Pay (api/apple/payment)        7

Рекуррентные платежи RecPayment(оплата по токену)        8

Операция Verify        10

Операция Reversal        10

Операция Refund (оффлайн операция!)        11

Операция Complete        12

Операция Check        13

Операция P2PCredit        14

Операция получения баланса (GetBalance)        17

Операция получения истории успешных транзакций (GetHistory)        18

Операция P2PDebit        19

Операция PurchaseOnMerchant        21

Получение токена для Masterpass        24

Проведение платежа через Masterpass        25

Подтверждение 3DS верификации        27

Оплата на платежной странице процессинга с расщеплением платежа        28

Справочник.  Статусы платежа        30

Справочник. Коды ответов        31

Справочник. Коды системных ошибок        36


Оплата на платежной странице процессинга

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

Production url:   https://pay.concord.ua/api/

POST параметры:

Параметр

Описание

Значение

operation

Тип операции

Purchase

merchant_id

ID мерчанта, выдается поцесcингом

amount

Сумма операции. Пример 500.00

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso,description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

order_id

Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку.

currency_iso

Валюта платежа.  

UAH

language

Язык платежной страницы ua,ru,en

ru

description

Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах

add_params

Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове

approve_url

URL для переадресации в случае, если платеж успешен

decline_url

URL для переадресации в случае, если платеж не успешен

cancel_url

URL для переадресации в случае, если пользователь отказался совершить оплату

callback_url

URL на который прийдет информация о результате выполнения платежа

redirect

true/false - по умолчанию true, если параметр стоит true, тогда клиент не будет получать переадресацию, а получит url платежной страницы

Не обязательный

auth_type

По умолчанию 1 - покупка, 2-Предавторизация

Не обязательный

Callback вызов для отправки уведомления о статусе платежа

Данные отправляются по URL адресу который указан в параметрах платежа в поле

callback_url.

Данные отправляются на сервер торговца в формате JSON

Параметры:

Название параметра

Описание

Значения

merchantAccount

ID мерчанта

orderReference

ID операции в системе торговца

amount

Сумма операции

currency

Валюта операции

phone

Номер телефона клиента(Если включен ввод телефона на платежной странице)

createdDate

Дата платежа в формате YYYY-MM-DD HH:II:SS

Пример: 2018-12-14 12:01:26

cardPan

Маскированный PAN карты.

Пример: 535277******0298

cardType

Тип карты

Visa

MasterCard

fee

Комиссия за операцию

transactionId

ID транзакции на стороне ПЦ

type

Тип операции. На данный момент параметр не используется

recToken

Токен для рекурентного платежа

transactionStatus

Статус операции

Approved - Успешно

Declined - Отказ

pcApprovalCode

Код авторизации

pcTransactionID

Идентификатор транзакции в процессинговом центре

reason

Текстовая причина отказа

reasonCode

Код ошибки при отказе

merchantSignature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,orderReference,amount,currency разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

Операция покупки через Apple Pay

Для  интеграции кнопки  Apple Pay  на платежную страницу интернет магазина необходимо реализовать метод ApplePaySession.canMakePaymentsWithActiveCard, этот метод определяет поддерживает ли данное устройство оплату с помощью Apple Pay.

Если поддерживает оплата - необходимо отрисовать кнопку “Купить с помощью Apple Pay”.

Далее необходимо создать объект ApplePaySession , с параметрами покупки:

  countryCode: 'UA',

  currencyCode: 'UAH',

  supportedNetworks: ['visa', 'masterCard'],

  merchantCapabilities: ['supports3DS'],

  total: { label: 'Your Merchant Name', amount: '10.00' },

Описание полей можно посмотреть в документации Apple Pay on Web.

На событие onvalidatemerchant необходимо повесить обработчик, в котором будет вызываться API “api/apple/validate” . Описание метода будет ниже.

На событие onpaymentauthorized необходимо повесить обработчик, который будет вызывать API “api/apple/payment”.

После подтверждения платежа в onpaymentauthorized необходимо вызвать метод

ApplePaySession.completePayment.

Документацию по ApplePaySession можно найти на оф сайте Apple (https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api).

Валидация мерчанта Apple Pay (api/apple/validate).

Production url:   https://pay.concord.ua/api/apple/validate

POST параметры:

Параметр

Описание

Значение

operation

Тип операции

Purchase

apple_validation_url

Данный параметр приходит в событии onvalidatemerchant, event.validationURL

Пример:

session.onvalidatemerchant = (event) => {

        console.log(event.validationURL);

}

merchant_id

ID мерчанта, выдается поцесcингом

amount

Сумма операции. Пример 500.00

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso,description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

order_id

Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку.

currency_iso

Валюта платежа.  

UAH

description

Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах

add_params

Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове

callback_url

URL на который придет информация о результате выполнения платежа

В ответ приходят следующие параметры:

Параметр

Описание

apple_validate_data

Данные которые необходимо передать в метод  session.completeMerchantValidation

order_key

Идентификатор заказа в платежной системе

code

Код ответа если 0 - все ок

message

Расшифровка кода ответа

Подтверждение платежа Apple Pay (api/apple/payment)

Production url:   https://pay.concord.ua/api/apple/payment

POST параметры:

Название

Описание

order_key

Идентификатор заказа в платежной системе

apple_pay_payment_data

Данные закодированные в base64, полученные в newсобытии onpaymentauthorized в параметре  event.payment.

Пример:

session.onpaymentauthorized = (event) => {

        console.log(event.payment);

}

 

В ответ приходит:

transactionStatus

Статус операции

Approved - Успешно

Declined - Отказ

reason

Текстовая причина отказа

reasonCode

Код ошибки при отказе

После вызова этого метода приходит callback в backend торговца.

Рекуррентные платежи RecPayment(оплата по токену)

Production url:   https://pay.concord.ua/api/

Для совершения рекуррентного платежа необходимо отправить POST запрос со следующими параметрами:

Название

Описание

operation

 Необходимое значение для данной операции RecPayment

merchant_id

Идентификатор мерчанта

amount

Сумма операции. Пример 500.00

recurring_token

Токен полученный от ПС

order_id

Уникальный номер заказа в системе торговца

description

Назначение платежа

currency_iso

Валюта. На данный момент только UAH

auth_type

1 - покупка, 2 - предавторизация. Не обязательный. По умолчанию - 1

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,recurring_token,currency_iso,description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

В ответ приходят следующие параметры:

Название

Параметры

status

APPROVED - успешно,

DECLINED - операция не успешна

code

Код ответа

Операция Verify

Для пополнения карты необходимо отправить переадресовать пользователя на страницу платежного шлюза  методом POST со следующими параметрами:

Имя параметра

Описание

Тип

operation

тип операции “Verify”

String

merchant_id

идентификатор мерчанта

String

order_id

Это уникальный номер операции. Генерируется на стороне мерчанта. Он должен быть уникальным на протяжении всей работы.

Integer

amount

Сумма, которую необходимо закодировать при проверке

Float

currency_iso

Валюта платежа.  

UAH

approve_url

URL на который будет перенаправлен пользователь в случае успешной операции

String

decline_url

URL на который будет перенаправлен пользователь в случае не успешной операции

String

cancel_url

URL на который будет перенаправлен пользователь в случае отмены операции

String

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

Операция Reversal

Для проверки статуса платежа или верификации карты необходимо отправить POST запрос на url https://pay.concord.ua/api/reversal со следующими параметрами:

Имя параметра

Описание

Тип

merchant_id

идентификатор мерчанта

String

order_id

Это уникальный номер операции которая была отправлена в запросе P2PCredit,P2PDebit или Verify

Integer

amount

Необязательный параметр. Если указана сумма - будет произведен частичный возврат

Float

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$order_id разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

code

Код ответа. (Список кодов ответа см. ниже)

Integer

message

Текстовое сообщение с результатом запроса

String

Операция Refund (оффлайн операция!)

Для частичного возврата необходимо отправить url https://pay.concord.ua/api/refund со следующими параметрами:

Имя параметра

Описание

Тип

merchant_id

идентификатор мерчанта

String

order_id

Это уникальный номер оригинальной транзакцции

Integer

amount

Необязательный параметр. Если указана сумма - будет произведен частичный возврат

Float

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$order_id разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

code

Код ответа. (Список кодов ответа см. ниже)

Integer

message

Текстовое сообщение с результатом запроса

String

Операция Complete

Для проверки статуса платежа или верификации карты необходимо отправить POST запрос на url https://pay.concord.ua/api со следующими параметрами:

Имя параметра

Описание

Тип

merchant_id

идентификатор мерчанта

String

operation

Complete

String

order_id

Это уникальный номер операции которая была отправлена в запросе Purchase

Integer

amount

Сумма списания

 float

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$order_id ,$amount разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

code

Код ответа. (Список кодов ответа см. ниже)

Integer

message

Текстовое сообщение с результатом запроса

String

Операция Check

Для проверки статуса платежа или верификации карты необходимо отправить POST запрос на  url https://pay.concord.ua/api/check со следующими параметрами:

Имя параметра

Описание

Тип

merchant_id

идентификатор мерчанта

String

order_id

Это уникальный номер операции которая была отправлена в запросе P2PCredit,P2PDebit или Verify

Integer

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$order_id разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

reasoneCode

Код ответа. (Список кодов ответа см. ниже)

Integer

reason

Описание ответа

String

merchantAccount

мерчант

String

amount

Сумма

String

phone

Номер телефона

String

createdDate

дата платежа

String

cardPan

Маскированный номер карты

String

cardType

Тип карты

String

transactionId

Идентификатор транзакции

BigInteger

message

Текстовое сообщение с результатом запроса

String

datetime

Дата создания операции на сервере

String

fee

Комиссия платежа

Double

transactionStatus

Статус операции(Справочник см ниже)

String

reverseAmount

Если транзакция в статусе REFUNDED - сумма возврата

Double

reverseDate

Если транзакция в статусе REFUNDED - Дата возврата

String

Операция P2PCredit

Для пополнения карты необходимо отправить POST запрос со следующими параметрами:

Имя параметра

Описание

Тип

Обязательный

operation

тип операции “P2PCredit”

String

да

merchant_id

идентификатор мерчанта

String

да

order_id

Это уникальный номер операции. Генерируется на стороне мерчанта. Он должен быть уникальным на протяжении всей работы.

String

да

amount

Сумма операции, должна быть дробным числом, c двумя знаками после запятой. Пример: 100.50

Double

да

card_number

Номер карты получателя.

String

нет

token

Токен, можно использовать вместо карты получателя

String

нет

currency_iso

Валюта операции. На данный момент доступна только “UAH”

String

да

add_params[SenderAccount]

уникальный номер электронного кошелька / счета плательщика

String

нет

add_params[SenderName]

данные, позволяющие определить лицо, которое заключило договор с получателем о поставке товаров, выполнение работ, оказание услуг, предоставление кредита

ФИО плательщика

String

нет

add_params[ResidentCountry]

место жительства плательщика

нет

add_params[SenderPostalCode]

место жительства плательщика

нет

add_params[ResidentCityInLatin]

место жительства плательщика

нет

add_params[Address]

место жительства плательщика

нет

add_params[passportNumber]

номер паспорта плательщика

нет

add_params[identityNumber]

ИНН плательщика

нет

add_params[SenderBirthday]

дата рождения плательщика

нет

add_params[SenderBirth_locality]

место рождения плательщика

нет

add_params[SenderName]

полное наименование плательщика

нет

add_params[ResidentCountry]

место нахождения плательщика

нет

add_params[SenderPostalCode]

место нахождения плательщика

нет

add_params[ResidentCityInLatin]

место нахождения плательщика

нет

add_params[Address]

место нахождения плательщика

нет

add_params[identityNumber]

ЕГРПОУ плательщика

нет

add_params[RecipientAccount]

уникальный номер электронного кошелька / счета получателя

нет

add_params[RecipientName]

ФИО получателя

нет

add_params[RecipientName]

полное наименование получателя

нет

add_params[PayerAccount]

уникальный номер электронного платежного средства плательщика

нет

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$order_id,$amount,card_number,currency_iso разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

code

Код ответа. (Список кодов ответа см. ниже Коды ответа P2PCredit)

Integer

message

Текстовое сообщение с результатом запроса

String

status

Статусы операции

APPROVED - перевод успешен

DECLINED - Перевод не успешен

ON-PAYMENT - Заявка на перевод в обработке, необходимо дополнительно запросить статус

String

transactionID

Идентификатор транзакции в платежной системе

Integer

approvalCode

Код авторизации

Integer

Операция получения баланса (GetBalance)

Для пополнения карты необходимо отправить POST на url  https://pay.concord.ua/api/balance запрос со следующими параметрами:

Имя параметра

Описание

Тип

operation

тип операции “GetBalance”

String

merchant_id

идентификатор мерчанта

String

date

Дата и время запроса в произвольном формате

String

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$data  разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

mk_deposit

Лимит Mastercard

Float

visa_deposit

Лимит Visa

Float

mk_available

Доступный остаток Mastercard

Float

visa_available

Доступный остаток Visa

Float

Операция получения истории успешных транзакций (GetHistory)

Для получения истории успешных операций необходимо отправить POST(не json) на url  https://pay.concord.ua/api/history запрос со следующими параметрами:

Имя параметра

Описание

Тип

operation

тип операции “GetHistory”

String

merchant_id

идентификатор мерчанта

String

date

Дата и время запроса в YYYY-MM-DD

String

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров $merchant_id,$data  разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

В ответ возвращается JSON со следующими параметрами:

Имя параметра

Описание

Тип

[].created

Дата платежа

Long

[].transactionId

Идентификатор платежа

String

[].order_id

Идентификатор платежа в системе торговца

String

[].PAN

Маскированный номер карты

String

[].amount

Сумма операции

Float

[].merchant_fee

Коммиссия с торговца

Float

[].customer_fee

Коммиссия с покупателя

Float

Операция P2PDebit

Для списания средств с карты необходимо переадресовать пользователя на страницу платежного шлюза  методом POST со следующими параметрами:

Имя параметра

Описание

Тип

operation

тип операции “P2PDebit”

String

merchant_id

идентификатор мерчанта

String

order_id

Это уникальный номер операции. Генерируется на стороне мерчанта. Он должен быть уникальным на протяжении всей работы.

Integer

amount

Сумма операции, должна быть дробным числом, c двумя знаками после запятой. Пример: 100.50

Double

currency_iso

Валюта операции. На данный момент доступна только “UAH”

String

description

Назначение платежа

String

approve_url

URL на который будет перенаправлен пользователь в случае успешной операции

String

decline_url

URL на который будет перенаправлен пользователь в случае не успешной операции

String

cancel_url

URL на который будет перенаправлен пользователь в случае отмены операции

String

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso,description,approve_url,decline_url,cancel_url разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

String

add_params[SenderAccount]

уникальный номер электронного кошелька / счета плательщика

String

add_params[SenderName]

данные, позволяющие определить лицо, которое заключило договор с получателем о поставке товаров, выполнение работ, оказание услуг, предоставление кредита

ФИО плательщика

String

add_params[ResidentCountry]

место жительства плательщика

String

add_params[SenderPostalCode]

место жительства плательщика

String

add_params[ResidentCityInLatin]

место жительства плательщика

String

add_params[Address]

место жительства плательщика

String

add_params[passportNumber]

номер паспорта плательщика

String

add_params[identityNumber]

ИНН плательщика

String

add_params[SenderBirthday]

дата рождения плательщика

String

add_params[SenderBirth_locality]

место рождения плательщика

String

add_params[SenderName]

полное наименование плательщика

String

add_params[ResidentCountry]

место нахождения плательщика

String

add_params[SenderPostalCode]

место нахождения плательщика

String

add_params[ResidentCityInLatin]

место нахождения плательщика

String

add_params[Address]

место нахождения плательщика

String

add_params[identityNumber]

ЕГРПОУ плательщика

String

add_params[RecipientAccount]

уникальный номер электронного кошелька / счета получателя

String

add_params[RecipientName]

ФИО получателя

String

add_params[RecipientName]

полное наименование получателя

String

add_params[PayerAccount]

уникальный номер электронного платежного средства плательщика

String

Операция PurchaseOnMerchant

Для оплаты на платежной странице мерчанта необходимо отправить  POST запрос со следующими данными данными.

Production url:   https://pay.concord.ua/api/

POST параметры:

Параметр

Описание

Значение

operation

Тип операции

PurchaseOnMerchant

merchant_id

ID мерчанта, выдается поцесcингом

amount

Сумма операции. Пример 500.00

customer_fee

Комиссия с клиента. Пример: 10.50

Double

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso,description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

order_id

Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку.

currency_iso

Валюта платежа.  

UAH

description

Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах

add_params

Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове

token

Токен для списания с карты без передачи реквизитов карты

card_num

Номер карты

card_exp_month

Срок действия карты MM

card_exp_year

Срок действия карты  YY

card_cvv

CVV2 код, в случае операции без CVV необходимо указать -1

card_holder

Владелец карты.  Не обязательное поле

phone

Номер телефона клиента. Не обязательное поле

payment_type

Тип платежа.

Purchase - покупка

PreAuth - блокирование средств на карте

secure_type

Тип прохождения безопасности транзакции

 Может принимать следующие значения:

1- 3DS

2- Non3DS

callback_url

URL на который прийдет информация о результате выполнения платежа

Ответ

Параметр

Описание

Значение

status

Статус платежа

справочник “Статусы платежа”

code

Код ответа

Справочник “Коды ответов”

order_id

Уникальный номер заказа в системе торговца

amount

Сумма платежа

fee

Комиссия

currency

Валюта платежа

token

Токен для последующих оплат. Токен вернется в случае, если платеж успешен

d3_acs_url

URL acs сервера на который необходимо отправить пользователя для верификации

d3_md

Уникальный идентификатор который необходимо передать на ACS сервер

d3_pareq

Запрос который необходимо передать на ACS сервер

transaction_key

Ключ транзакции, который необходимо использовать для подтверждения платежа

transaction_id

Идентификатор транзакции

signature

Если в ответе code пришло значение 2001 необходимо провести проверку 3DS.

Для проверки 3ds необходимо методом POST отправить форму с параметрами d3_md, d3_pareq, term_url  на d3_acs_url.

term_url - url на который вернется результат проверки 3DS.

<form name="MPIform" action='${d3_acs_url}' method="POST">

<input type="hidden" name="PaReq" value='${d3_pareq }'>

<input type="hidden" name="MD" value='${d3_md }'>

<input type="hidden" name="TermUrl" value='${term_url}'>

</form>

Получение токена для Masterpass

Production url:  https://pay.concord.ua/api/mptoken

Для получения гостевого токена необходимо отправить  POST запрос со следующими данными данными.

Параметр

Описание

msisdn

Номер телефона для входа в кошелек Masterpass в формате 380XXXXXXXXX

client_id

Идентификатор клиента в системе MasterPass

В ответ приходит объект в формате JSON со следующими параметрами:

Параметр

Описание

res

Результат запроса 0 - все ок

msg

Сообщение об ошибке

token

Токен для передачи в mfs библиотеку

reference_no

Уникальный номер запроса

Проведение платежа через Masterpass

Production url:  https://pay.concord.ua/api

Для получения гостевого токена необходимо отправить  POST запрос со следующими данными данными.

Параметр

Описание

Значение

operation

Тип операции

PurchaseMasterpass

merchant_id

Идентификатор мерчанта

amount

Сумма платежа в формате 1.00

order_id

currency_iso

Валюта

UAH

description

Описание плаатежа

approve_url

URL для переадресации после успешного платежа (в случае подтверждения 3DS на странице ConcordPay)

decline_url

URL для переадресации после не успешного платежа (в случае подтверждения 3DS на странице ConcordPay)

cancel_url

URL для переадресации после отмены платежа (в случае подтверждения 3DS на странице ConcordPay)

callback_url

URL на который будет отправлен callback о статусе платежа

add_params[wallet]

Признак кошелька

masterpass

add_params[msisdn]

Номер телефона для входаа в кошелек Masterpass в формате 380XXXXXXXXX

add_params[token]

Токен полученный с сервера  MasterPass

add_params[card_name]

Alias карты полученный с сервера MasterPass

add_params[client_id]

Идентификатор мерчанта в системе MasterPass

add_params[ret_ref_no]

Уникальный номер транзакции полученный с сервера MasterPass

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso,description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

В ответ приходит объект в формате JSON со следующими параметрами:

Если транзакция требует подтверждения 3DS:

Параметр

Описание

code

Код ответа

status

Статус транзакции, если необходима проверка 3DS , в статусе , будет значение 3ds

d3AcsUrl

url для перенаправления клиента, для проверки 3ds

d3Md

Криптограмма для передачи на хост 3DS

d3Pareq

Запрос для передачи на хост 3DS

transaction_key

Ключ транзакции для подтверждения 3DS

TermUrl

Url для переадресации после вводе кода подтверждения на странице 3DS. По умолчанию url на страницу ConcordPay,  для проверки 3DS можно указать свой URL, тогда после прохождения 3DS необходимо вызвать метод “Подтверждение 3DS верификации”

Подтверждение 3DS верификации

Для оплаты на платежной странице мерчанта необходимо отправить  POST запрос со следующими данными данными.

Production url:   https://pay.concord.ua/api/

Параметр

Описание

Значение

operation

Тип операции

Complete3DS

transaction_key

Ключ транзакции

merchant_id

Идентификатор мерчанта

d3ds_md

Идентификатор полученный после редиректа с сервера ACS

d3ds_pares

Сообщение полученное после редиректа с сервера ACS

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,transaction_key,d3ds_md,d3ds_pares разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

Ответ

Параметр

Описание

Значение

status

Статус платежа

справочник “Статусы платежа”

code

Код ответа

Справочник “Коды ответов”

order_id

Уникальный номер заказа в системе торговца

amount

Сумма платежа

fee

Комиссия

currency

Валюта платежа

card_pan

Маскированный номер карты

transaction_id

Идентификатор транзакции

Оплата на платежной странице процессинга с расщеплением платежа

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

Production url:   https://pay.concord.ua/api/

POST параметры:

Параметр

Описание

Значение

operation

Тип операции

Purchase

merchant_id

ID мерчанта, выдается поцесcингом

amount

Сумма операции. Пример 500.00

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_MD5 контрольная подпись с использованием SecretKey торговца.

Строка, подлежащая HMAC_MD5, генерируется путем конкатенации параметров merchant_id,order_id,amount,currency_iso,description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

order_id

Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку.

currency_iso

Валюта платежа.  

UAH

description

Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах

add_params

Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове

split

Признак расщепления платежа

0 - не расщеплять

1 -  расщеплять

split_rules

Массив с правилами расщепления который содержит в себе идентификаторы субмерчанта и суммы.

Сумма расщеплений должна совпадать с суммой платежа.

Пример:

split_rules[0][sub_merchant_id]=test1&split_rules[0][amount]=100.00&split_rules[1][sub_merchant_id]=test2&split_rules[1][amount]=50.00&.......&split_rules[n][sub_merchant_id]=testn&split_rules[n][amount]=10.00

approve_url

URL для переадресации в случае, если платеж успешен

decline_url

URL для переадресации в случае, если платеж не успешен

cancel_url

URL для переадресации в случае, если пользователь отказался совершить оплату

callback_url

URL на который прийдет информация о результате выполнения платежа

Справочник.  Статусы платежа

Значение

Статус

ON-PAYMENT

Платеж исполняется

NEW

Платеж создан, ожидается ввод реквизитов

APPROVED

Платеж успешен

DECLINED

Платеж отклонен

REFUNDINPROC

В процессе возврата

REFUNDED

Возвращен

EXPIRED

Платеж просрочен

WAITING-AUTH

Ожидает подтверждение авторизации

3ds

Требует проверки 3D-Secure

Справочник. Коды ответов

Код

Расшифровка

Расшифровка (ENG)

1

ОПЕРАЦИЯ РАЗРЕШЕНА

50

Финансовая транзакция не выполнена

General

51

Карта клиента просрочена

Expired card

52

Превышено число попыток ввода PIN

Number of PIN tries exceeded

53

Не удалось маршрутизировать транзакцию

No sharing allowed

55

Транзакция имеет некорректные атрибуты или данная операция не разрешена

Invalid transaction

56

Запрашиваемая операция не поддерживается хостом

Transaction not supported by institution

57

Карта клиента имеет статус 'потеряна' или 'украдена'

Lost or stolen card

58

Карта клиента имеет неправильный статус

Invalid card status

59

Карта клиента имеет ограниченные возможности

Restricted status

60

Не найден вендор с указанным номером счета

Account not found

61

Неверное количество информационных полей для заданного вендора

Wrong customer information for payment

62

Неверный формат информационного поля платежа

Customer information format error

63

Не найден prepaid-код

Prepaid Code not found

64

Track2 карты клиента содержит неверную информацию

Bad track information Track2

69

Неверный формат сообщения

Bad message edit

74

Невозможно авторизовать

Unable to authorize

75

Неверный PAN карты

Invalid credit PAN

76

На счете не хватает средств

Insufficient funds

78

Произошло дублирование транзакции

Duplicate transaction received

82

Превышение количества использований карты клиента

Maximum number of times used

85

Невозможно выдать баланс

Balance not allowed

95

Превышение лимита по сумме

Amount over maximum

100

Невозможно провести транзакцию

Unable to process

101

Невозможно авторизовать – необходимо позвонить издателю карты

Unable to authorize – call issuer

105

Данный тип карт не поддерживается

Card not supported

200

Неправильный счет клиента

Invalid account

201

Неправильный PIN

Incorrect PIN

205

Некорректная сумма

Invalid advance amount

209

Неверный код транзакции

Invalid transaction code

210

Неверное значение CAVV

Bad CAVV

211

Неверное значение CVV2

Bad Cvv2

212

Не найдена оригинальная транзакция для слипа

Original transaction not found for slip

213

Слип принимается повторно

Slip already received

501

Транзакция выполнена успешно

Approved

502

Транзакция выполнена успешно на частичную сумму

Partially approved

503

Транзакция выполнена успешно только на сумму покупки (для транзакции 118 – Purchase with Cashback)

Purchase only approved

510

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

Should select account number

511

Необходимо сменить PVV (разрешена только транзакция PIN Change)

Should change PVV

512

Необходимо подтвердить результаты проверки платежа в системе online-приема платежей

Confirm Payment Precheck

513

Транзакция запроса списка уведомлений выполнена успешно

Select Bill

514

Необходимо подтвердить результаты предпроверки операции

Customer confirmation requested

515

Не найдена оригинальная транзакция

Original transaction not found

516

Слип уже принят

Slip already received

517

Ошибка в реквизитах платежа

Personal information input error

520

Невозможно захватить Prepaid-код

Prepaid code not found

521

Баланс корр. счета исчерпан

Corresponding account exhausted

522

Превышен эквайринговый лимит

Acquirer limit exceeded

524

Истек срок действия диамического PVV

Dynamic PVV Expired

525

Слабый PIN

Weak PIN

540

Карта потеряна

Lost card

541

Карта украдена

Stolen card

549

Недопустимый тип платежа для данного вендора

Ineligible vendor account

550

Несанкционированное использование

Unauthorized usage

551

Истек срок действия карты

Expired card

552

Неверная карта

Invalid card

553

Неверный PIN-код

Invalid PIN

554

Системная ошибка

System error

555

Неподходящая транзакция

Ineligible transaction

556

Неподходящий счет

Ineligible account

557

Транзакция не поддерживается

Transaction not supported

558

Карта ограничена (данная операция по карте не разрешена)

Restricted Card

559

Недостаточно средств на счете

Insufficient funds

560

Превышен лимит на число использований карты

Uses limit exceeded

561

Лимит на снятие наличных будет превышен

Withdrawal limit would be exceeded

562

Достигнут или превышен лимит на число неверных вводов PIN-кода

PIN tries limit was reached

563

Достигнут лимит на снятие наличных

Withdrawal limit already reached

564

Достигнут лимит на депозит

Credit amount limit

565

Нет информации для предоставления отчета по счету

No statement information

566

Предоставление отчета по счету невозможно (запрещено)

Statement not available

567

Недопустимая сумма

Invalid amount

568

Транзакция отвергнута внешним хостом

External decline

569

Несогласованный запрос (данная карта не обслуживается в данном терминале)

No sharing

571

Необходимо обратиться к издателю

Contact card issuer

572

Авторизатор недоступен

Destination not available

573

Ошибка маршрутизации

Routing error

574

Ошибка формата

Format error

575

Транзакция отвергнута внешним хостом по специальному условию (владелец карты подозревается в мошенничестве)

External decline special condition

580

Неверный CVV

Bad CVV

581

Неверный CVV2

Bad CVV2

582

Неверная транзакция (транзакция не разрешена с такими условиями проведения)

Invalid transaction

583

Лимит на число неверных вводов PIN-кода  УЖЕ достигнут  (т.е. ранее был достигнут лимит на число неверных вводов PIN-кода, после чего был введен верный PIN)

PIN tries limit was exceeded

584

Неверное значение проверочного числа 3D Secure Cardholder Authentication Verification Value

Bad CAVV

585

Неверное значение криптограммы ARQC

Bad ARQC

800

Ошибка формата

Format error

801

Не найдена оригинальная транзакция для реверса

Original transaction not found

809

Неверная операция закрытия периода

Invalid close transaction

810

Произошел тайм-аут

Transaction timeout

811

Системная ошибка

System error

820

Неправильный идентификатор терминала

Invalid terminal identifier

880

Был послан последний пакет - прогрузка успешно завершена

Download has been received in its entirety

881

Предыдущий этап прогрузки был успешно выполнен –имеются еще данные

Download received successfully and there is more data for this download

882

Прогрузка терминала остановлена. Необходимо позвонить в процессинговый центр

Download aborted (call for service)

897

Получена неверная криптограмма в транзакции

Invalid cryptogram

898

Получен неверный MAC

Invalid MAC

899

Ошибка синхронизации

Sequence error—resync

900

Превышено число попыток ввода PIN. Требуется захват карты

Pin Tries Limit Exceeded

901

Карта просрочена, требуется захват карты

Expired Card

909

Требуется захват карты

External Decline Special Condition

959

Административная транзакция не поддерживается

Administrative transaction not supported

2001

Необходима верификация 3DS

Need 3ds verify

Справочник. Коды системных ошибок

Код

Расшифровка

Расшифровка (ENG)

-1

 Системная ошибка

-2

Не передан параметр merchant_id

General

-3

Мерчант не найден

Expired card

-4

Неправильная подпись

Number of PIN tries exceeded

-5

Лимит на выполнение операций

No sharing allowed

-6

Неверный номер карты

Invalid transaction

-7

Неверная валюта

Transaction not supported by institution

-8

Неверный  order_id

Lost or stolen card

-9

Операция с таким order_id  уже существует

Invalid card status

-10

Платеж не найден

Restricted status

-11

Неверный тип операции

Account not found

-999

Системная ошибка

Wrong customer information for payment