Уведомление о сопоставлении карты Sale

Введение

Уведомление о сопоставлении карты Sale инициируется запросом HTTPS POST с использованием URL-адресов и параметров.
Уведомление о сопоставлении карт позволяет сопоставлять учётные данные Consumer (телефон, e-mail, адрес выставления счёта, имя в Twitter и т. д.) с данными карты. Сопоставления можно использовать в транзакциях Transfer или Sale вместо номеров карт и иной информации о держателе карты. SBC отправляет запрос уведомления о сопоставлении карты Sale на сервер/прокси Присоединяющейся стороны с созданной на своей стороне ссылкой на карту — {serverCardId}.
Сервер Присоединяющейся стороны сопоставляет {serverCardId} с созданным на своей стороне {clientCardId}. Затем этот {clientCardId} может быть сопоставлен в приложении или на сервере Присоединяющейся стороны с любыми данными Consumer из исходного запроса Perform sale. Это позволяет приложению Присоединяющейся стороны обрабатывать транзакции Sale или Transfer по электронному адресу Consumer, номеру телефона и т. д.
{uniqueReferenceCardId} остаётся прежним, если потребитель выполняет другую транзакцию с тем же номером карты, но, например, другой датой истечения срока. Присоединяющаяся сторона может использовать его для программ лояльности или контроля мошенничества.
Приложение Присоединяющейся стороны создаёт новые запросы Sale, используя {clientCardId} вместо данных исходной карты. SBC отправляет этот {clientCardId} на сервер Присоединяющейся стороны в «Check sale request» и получает сопоставленный с ним {serverCardId} в «Check sale response» от сервера Присоединяющейся стороны, который используется для продолжения обработки этой транзакции.
{serverCardId} карты-источника или проверенной карты можно использовать для новых транзакций Sale и как источник или получатель для новых транзакций Transfer.

API URL

Примечание

Это пример URL на сервере Присоединяющейся Стороны.

Сервер Присоединяющейся Стороны

https://proxy.connectingpartyserver.com/sale/notification

Параметры запроса

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

Описание

Значение

consumer


Необходимость: Обязательно
Тип: Object

consumer.device


Необходимость: Обязательно
Тип: Object

consumer.device.serialNumber

Серийный номер устройства потребителя.

Необходимость: Обязательно
Тип: String
Длина: 1-50

session


Необходимость: Обязательно
Тип: Object

session.accessToken

Ключ токена доступа потребителя.

Необходимость: Обязательно
Тип: String
Длина: 32-128

session.token

Session token транзакции sale.

Необходимость: Обязательно
Тип: String
Длина: 16-36

sourceCard

Необходимость: Опционально
Тип: Object

sourceCard.bin

BIN исходной карты.

Необходимость: Опционально
Тип: Integer

sourceCard.reference

Необходимость: Опционально
Тип: Object

sourceCard.reference.serverCardId

Ссылочный идентификатор исходной карты (на стороне сервера).

Необходимость: Опционально
Тип: String
Length: 1-64

sourceCard.reference.uniqueReferenceCardId

Уникальный идентификатор исходной карты (на стороне сервера).

Необходимость: Опционально
Тип: Integer

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

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

Описание

Значение

invoiceId

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

Тип: String

session

Тип: Object

session.checkSignature

Контрольная сумма, сгенерированная hmac-sha1 (см. Вычисление подписи) из конкатенации session.nonce, endpointId и invoiceId.

Тип: String

session.nonce

Уникальная случайная строка, сгенерированная сервером Присоединяющейся стороны.

Тип: String

session.token

Session token транзакции sale.

Тип: String

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

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

Описание

Значение

error

Тип: Object

error.cause

Причина ошибки. Возможные значения: FILTERED, INVALID_REQUEST, SERVER_FAILED, SERVER_UNAVAILABLE.

Тип: Enum

error.code

Уникальный код ошибки.

Тип: String

error.message

Описание ошибки.

Тип: String

invoiceId

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

Тип: String

Пример запроса

{
  "consumer": {
    "device": {
      "serialNumber": "string"
    }
  },
  "session": {
    "accessToken": "string",
    "token":"string"
  },
  "sourceCard": {
    "bin": "integer",
    "reference": {
      "serverCardId": "string",
      "uniqueReferenceCardId": "integer"
    }
  }
}

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

{
  "invoiceId": "string",
  "session": {
    "checkSignature": "string",
    "nonce": "string",
    "token": "string"
  }
}

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

{
  "error": {
    "cause": "enum",
    "code": "string",
    "message": "string"
  },
  "invoiceId": "string"
}