Описание: Perform transfer

Введение

Описание: Perform transfer инициируется через запрос HTTPS POST с использованием URL-адресов и параметров.
На этом этапе приложение Присоединяющейся Стороны отправляет данные держателя карты, устройства, сессии и другие параметры напрямую в SBC для выполнения перевода средств с карты на карту.
Может применяться множество проверок и фильтров по различным критериям, таким как BIN, валюта, страна, наличие в чёрном списке и т.д. В зависимости от интеграции эти настройки могут быть конфигурируемыми.

API URL

Примечание

Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее.

Интеграционная среда

Производственная среда

https://sandbox.sbctech.ru/paynet/dapi/v1/transfer/{endpointId}/{invoiceId}

https://gate.sbctech.ru/paynet/dapi/v1/transfer/{endpointId}/{invoiceId}

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

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

Описание

Значение

consumer

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

consumer.device

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

consumer.device.serialNumber

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

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

consumer.email

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

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

destinationOfFunds

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

destinationOfFunds.card

Следует использовать только один из этих подтипов (card, reference).

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

destinationOfFunds.card.number

Destination карта номер (PAN).

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

destinationOfFunds.reference

Следует использовать только один из этих подтипов (card, reference).

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

destinationOfFunds.reference.clientCardId

Идентификатор ссылки на карту получателя (на стороне клиента).

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

session

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

session.accessToken

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

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

session.nonce

Значение, полученное в ответе Initiate transfer.

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

session.signature

Значение, полученное в ответе Initiate transfer.

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

sourceOfFunds

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

sourceOfFunds.card

Следует использовать только один из этих подтипов (card, reference).

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

sourceOfFunds.card.expiry

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

sourceOfFunds.card.expiry.month

Месяц окончания срока действия исходной карты.

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

sourceOfFunds.card.expiry.year

Год окончания срока действия исходной карты.

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

sourceOfFunds.card.holder

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

sourceOfFunds.card.holder.firstName

Название Cardholder’s first.

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

sourceOfFunds.card.holder.lastName

Название Cardholder’s last.

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

sourceOfFunds.card.holder.printedName

Имя держателя карты, напечатанное на карте (имя и фамилия вместе). Может использоваться вместо firstName + lastName.

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

sourceOfFunds.card.number

Номер исходной карты (PAN).

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

sourceOfFunds.card.securityCode

Код безопасности исходной карты (CVV).

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

sourceOfFunds.reference

Следует использовать только один из этих подтипов (card, reference).

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

sourceOfFunds.reference.clientCardId

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

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

sourceOfFunds.reference.securityCode

Код безопасности исходной карты (CVV).

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

transaction

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

transaction.amountCentis

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

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

transaction.currency

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

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

location

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

location.lat

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

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

location.lng

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

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

billing

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

billing.address

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

billing.address.city

Название города.

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

billing.address.country

Трёхбуквенный код страны ISO.

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

billing.address.postcodeZip

Почтовый индекс ZIP.

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

billing.address.state

Поле «Штат» используется при наличии. Например, Лос-Анджелес находится в штате CA.

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

billing.address.street

Поле «Улица» используется для названий районов и улиц.

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

billing.address.street2

Поле «Улица 2» используется для длинных адресов. Обычно оно содержит номер квартиры и здания.

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

billing.phone

Контактный номер телефона потребителя.

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

consumer.birthDay

Дата рождения потребителя в формате «ddMMyyyy».

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

consumer.device.imei

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

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

consumer.ipAddresses

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

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

consumer.ipAddresses[]

Адрес Сonsumer’s IP.

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

order

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

order.description

Краткое описание транзакции. Может быть обязательным для некоторых банков-эквайеров.

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

order.siteUrl

URL веб-сайта, связанного с транзакцией.

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

order.purpose

Может использоваться для более эффективного контроля транзакции или дополнительных проверок.

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

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

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

Описание

Значение

invoiceId

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

Тип: String

session

Тип: Object

session.token

Token сессии транзакции transfer.

Тип: String

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

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

Описание

Значение

error

Тип: Object

error.cause

Причина ошибки. Возможные значения: INVALID_REQUEST, INVALID_CONFIGURATION, INTERNAL_ERROR, PROCESSING_FAILED.

Тип: Enum

error.code

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

Тип: String

error.message

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

Тип: String

invoiceId

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

Тип: String

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

{
  "billing": {
    "address": {
      "city": "string",
      "country": "string",
      "postcodeZip": "string",
      "state": "string",
      "street": "string",
      "street2": "string"
    },
    "phone": "string"
  },
  "consumer": {
    "birthDay": "string",
    "device": {
      "imei": "string",
      "serialNumber": "string"
    },
    "email": "string",
    "ipAddresses": ["string"]
  },
  "destinationOfFunds": {
    "card": {
      "number": "string",
    },
    "reference": {
      "clientCardId": "string"
    }
  },
  "location": {
    "lat": "double",
    "lng": "double"
  },
  "order": {
    "description": "string",
    "siteUrl": "string",
    "purpose": "string"
  },
  "session": {
    "accessToken": "string",
    "nonce": "string",
    "signature": "string"
  },
  "sourceOfFunds": {
    "card": {
      "expiry": {
        "month": "integer",
        "year": "integer"
      },
      "holder":{
        "firstName": "string",
        "lastName": "string"
      },
      "number": "string",
      "securityCode": "string"
    },
    "reference": {
      "clientCardId": "string",
      "securityCode": "string"
    }
  },
  "transaction": {
    "amountCentis": "integer",
    "currency": "string"
  }
}

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

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

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

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

Конструктор запросов

Для интеграции используйте Сценарии тестирования SBC для генерации случайных номеров карт.

Endpoint Id
Invoice Id

Generated by Merchant's server in "Initiate transfer"

Device serial number
Device imei
E-mail
Birthday
Ip Address
accessToken

Generated by Merchant's server in "Consumer authentication"

nonce

Generated by Merchant's server in "Initiate transfer"

signature

Generated by Merchant's server in "Initiate transfer"

Source Card number

Use either card-number or clientCardId, not both

CVV for a new card

Leave empty if clientCardId is being used

Card expiry month

Leave empty if clientCardId is being used

Card expiry year

Leave empty if clientCardId is being used

First name

Leave empty if clientCardId is being used

Last name

Leave empty if clientCardId is being used

Source Card reference

Use either card-number or clientCardId, not both

CVV for the reference

Leave empty if new card is being used

Destination Card number

Use either card-number or clientCardId, not both

Destination Card reference

Use either card-number or clientCardId, not both

Transfer amount

Will be calculated to centis in generated string

Currency

ISO 4217 alpha three-letter code

Loc. Latitude
Loc. Longitude
City
Country
ZIP Postcode
State
Street
Street2
Phone
Order description
Order site Url