Описание: Initiate transfer

Введение

Инициация перевода выполняется через запрос HTTPS POST с использованием URLs и parameters.
Для инициирования перевода средств приложение Присоединяющейся стороны отправляет {accessToken} с суммой транзакции и другими параметрами устройства на сервер Присоединяющейся стороны; они используются для запуска сеанса с уникальными случайными {nonce} и зашифрованной {signature}.
In ответ Присоединяющаяся сторона’s server also provides information about invoice in Присоединяющаяся сторона’s system and endpoint in site.company_название. 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"
  }
}