Method: disburseFunds

Инициирует движение денег между платежным процессором и счетом клиента. Комбинация requestId в заголовке и paymentIntegratorAccountId является ключом идемпотентности и уникально идентифицирует эту транзакцию. Все изменения в этой транзакции заполняют значение requestId в поле disburseFundsRequestId .

Если конечная точка обнаруживает ошибку при обработке запроса, тело ответа от этой конечной точки должно иметь тип ErrorResponse .

Пример запроса выглядит так:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

Пример ответа выглядит так:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

HTTP-запрос

POST https://www.integratorhost.example.com/v1/disburseFunds

Тело запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
Поля
requestHeader

object ( RequestHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов.

paymentIntegratorAccountId

string

ОБЯЗАТЕЛЬНО : это идентификатор учетной записи платежного интегратора, который определяет договорные ограничения, связанные с этой транзакцией.

transactionDescription

string

ОБЯЗАТЕЛЬНО : это описание транзакции, которое можно указать в выписке клиента. Локализовано для userLocale, найденного в requestHeader . Этот формат может быть изменен без предварительного уведомления, и его ни в коем случае нельзя анализировать.

currencyCode

string

ТРЕБУЕТСЯ : трехбуквенный код валюты ISO 4217.

amount

string ( Int64Value format)

ОБЯЗАТЕЛЬНО : Сумма покупки в микро валютной единице.

Объединить поле destinationFopDetails .

destinationFopDetails может быть только одним из следующих:

upiDetails

object ( UpiDetails )

НЕОБЯЗАТЕЛЬНО : платежные реквизиты, специфичные для инструментов UPI.

Тело ответа

Объект ответа для метода выплаты средств.

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
Поля
responseHeader

object ( ResponseHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов.

paymentIntegratorTransactionId

string

ОБЯЗАТЕЛЬНО : этот идентификатор специфичен для интегратора и генерируется интегратором. Это идентификатор, по которому интегратор знает эту транзакцию.

Для удобства этот идентификатор включен в детали денежного перевода.

disburseFundsResult

object ( DisburseFundsResult )

ОБЯЗАТЕЛЬНО : Результат запроса на выплату средств.

UpiДетали

Подробная информация о счете UPI, на который будет произведена выплата.

JSON-представление
{
  "vpa": string
}
Поля
vpa

string

ОБЯЗАТЕЛЬНО : виртуальный платежный адрес пользователя (VPA), используемый для перевода денег с использованием протокола UPI. Например, foo@icici .

Результат выплаты средств

Информация об окончательном результате выплаты.

JSON-представление
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string
  // End of list of possible types for union field FailureDetail.
}
Поля
disburseFundsResultCode

enum ( DisburseFundsResultCode )

ОБЯЗАТЕЛЬНО : Код результата этой выплаты.

rawResult

object ( RawResult )

НЕОБЯЗАТЕЛЬНО : необработанный результат этой выплаты. Используется для информирования системы рисков и аналитики Google. В ситуациях отказа от сопоставления кода данные иногда теряются. Интегратор может предоставить Google необработанный код. Например, шлюз кредитных карт (интегратор) может использовать это поле, чтобы сообщить Google точный код отклонения, полученный из сети VISA. В этом случае scope будет «visa», а rawCode — то, что вернула сеть VISA.

Это значение является обязательным , если result не SUCCESS .

Поле объединения FailureDetail .

FailureDetail может быть только одним из следующих:

transactionMaxLimit

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : если disburseFundsResultCode имеет значение DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT , то это значение максимально допустимой транзакции. Это используется для структурированного обмена сообщениями, ориентированными на пользователя, и анализа темпов снижения.

Эта сумма представляет собой микротот того же currencyCode , что и исходный вызов метода disburseFunds .

transactionMinLimit

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : если disburseFundsResultCode имеет значение DISBURSEMENT_UNDER_TRANSACTION_LIMIT , то это значение минимально допустимой транзакции. Это используется для структурированного обмена сообщениями, ориентированными на пользователя, и анализа темпов снижения.

Эта сумма представляет собой микротот того же currencyCode , что и исходный вызов метода disburseFunds .

DisburseFundsResultCode

Коды результатов для вызова выплаты средств.

Перечисления
UNKNOWN_RESULT Никогда не устанавливайте это значение по умолчанию!
SUCCESS Выплата прошла успешно.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT Запрошенная сумма выплаты не соответствует минимальной сумме транзакции, установленной интегратором. Если этот код используется, заполните поле transactionMinLimit минимальной суммой транзакции для целей обмена сообщениями с пользователем.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT Запрошенная сумма выплаты превышает максимальный лимит интегратора на транзакцию. Если используется этот код, заполните поле transactionMaxLimit лимитом транзакции для целей обмена сообщениями с пользователем.
ACCOUNT_CLOSED Учетная запись пользователя у интегратора закрыта. Это возвращаемое значение приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Аккаунт пользователя у интегратора закрыт, подозрение на захват аккаунта. Это возвращаемое значение приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент.
ACCOUNT_CLOSED_FRAUD Аккаунт пользователя у интегратора закрыт из-за мошенничества. Это возвращаемое значение приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент.
ACCOUNT_ON_HOLD Аккаунт пользователя заблокирован.

RawResult

Необработанный объект результата.

JSON-представление
{
  "scope": string,
  "rawCode": string
}
Поля
scope

string

НЕОБЯЗАТЕЛЬНО : Область действия rawCode может быть пустой.

rawCode

string

ОБЯЗАТЕЛЬНО : необработанный код интегратора или его подсистем.