Описание: Initiate transfer

Введение

Инициация перевода выполняется через запрос HTTPS POST с использованием URLs и parameters.
Для инициирования перевода средств приложение Присоединяющейся стороны отправляет {accessToken} с суммой транзакции и другими параметрами устройства на сервер Присоединяющейся стороны; они используются для запуска сеанса с уникальными случайными {nonce} и зашифрованной {signature}.
In ответ Присоединяющаяся сторона’s server also provides information about invoice in Присоединяющаяся сторона’s system and endpoint in SBC. SBC
The Присоединяющаяся сторона’s server may also respond with the транзакция’s commission.

API URL

Примечание

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

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

https://proxy.connectingpartyserver.com/transfer/initiate-transfer

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

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

Описание

Значение

consumer


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

consumer.device


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

consumer.device.serialNumber

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

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

transaction


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

transaction.amountCentis

Сумма транзакции: 1,00 EUR = 100 центов.

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

transaction.currency

Буквы верхнего регистра (alpha-код по ISO 4217).

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

session


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

session.accessToken

Ключ токена доступа, полученный при необязательной аутентификации потребителя.

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

consumer.device.imei

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

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

location

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

location.lat

Широта указывается в диапазоне от -90.0 до +90.0 включительно.

Тип: Double

location.lng

Долгота указывается в диапазоне от -180.0 до +180.0 включительно.

Тип: Double

consumer.ipAddresses

IP-адреса потребителя.

Тип: List

consumer.ipAddresses[]

IP-адрес потребителя.

Необходимость: Опционально
Тип: String
Длина: 7-15

fromBin

BIN карты-источника средств (первые 6 цифр номера карты) может использоваться для отображения предварительно рассчитанной комиссии.

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

toBin

BIN карты-получателя средств (первые 6 цифр номера карты) может использоваться для отображения предварительно рассчитанной комиссии.

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

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

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

Описание

Значение

endpointId

Идентификатор точки входа для транзакции Transfer.

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

invoiceId

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

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

session


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

session.nonce

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

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

session.signature

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

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

rates

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

rates.min

Possible минимальный commission сумма.

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

rates.max

Possible максимальный commission сумма.

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

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

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

Описание

Значение

error

Тип: Object

error.cause

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

Тип: Enum

error.code

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

Тип: String

error.message

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

Тип: String

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

{
  "consumer": {
    "device": {
      "imei": "string",
      "serialNumber": "string"
    },
    "ipAddresses": ["string"]
  },
  "location": {
    "lat": "double",
    "lng": "double"
  },
  "session": {
    "accessToken": "string"
  },
  "transaction": {
    "amountCentis": "integer",
    "currency": "string"
  }
}

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

{
  "endpointId": "string",
  "invoiceId": "string",
  "rates": {
    "min": "string",
    "max": "string"
  },
  "session": {
    "nonce": "string",
    "signature": "string"
  }
}

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

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