Method: disburseFunds

決済代行業者とお客様のアカウント間の金銭の移動を開始します。ヘッダー内の requestIdpaymentIntegratorAccountId の組み合わせがべき等性キーであり、このトランザクションを一意に識別します。このトランザクションのすべてのミューテーションで、disburseFundsRequestId フィールドに requestId 値が入力されます。

リクエストの処理中にエンドポイントでエラーが発生した場合、このエンドポイントからのレスポンス本文は 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

必須: これは、この取引に関する契約上の制約を識別する、決済インテグレータのアカウント ID です。

transactionDescription

string

必須: お客様の明細書に記載できる取引の説明です。requestHeader にある userLocale に合わせてローカライズされます。この形式は予告なく変更されることがあり、解析されることはありません。

currencyCode

string

必須: ISO 4217 の 3 文字の通貨コード

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)

必須: 支払いファンドの呼び出しの結果。

UpiDetails

お支払い先の UPI アカウントの詳細。

JSON 表現
{
  "vpa": string
}
フィールド
vpa

string

必須: UPI プロトコルを使用して送金するために使用するユーザーの仮想支払い先住所(VPA)。(例: foo@icici)。

DisburseFundsResult

支払いの最終結果に関する情報。

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 に未加工のコードを渡すこともできます。たとえば、クレジット カード ゲートウェイ(インテグレータ)は、このフィールドを使用して、VISA ネットワークから受け取った正確な不承認コードを Google に伝えることができます。その場合、scope は「visa」になります。rawCode は、VISA ネットワークから返されたものになります。

resultSUCCESS でない場合、この値は必須です。

共用体フィールド FailureDetail

FailureDetail は次のいずれかになります。

transactionMaxLimit

string (Int64Value format)

省略可: disburseFundsResultCodeDISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT の場合、これは最大許容トランザクションの値です。これは、構造化されたユーザー向けのメッセージや不承認率の分析に使用されます。

この数値は、元の disburseFunds メソッド呼び出しと同じ currencyCodemicros です。

transactionMinLimit

string (Int64Value format)

省略可: disburseFundsResultCodeDISBURSEMENT_UNDER_TRANSACTION_LIMIT の場合、これは最小許容トランザクションの値です。これは、構造化されたユーザー向けのメッセージや不承認率の分析に使用されます。

この数値は、元の disburseFunds メソッド呼び出しと同じ currencyCodemicros です。

DisburseFundsResultCode

支払いファンドの呼び出しの結果コード。

列挙型
UNKNOWN_RESULT このデフォルト値は設定しないでください。
SUCCESS 支払いが正常に完了しました。
DISBURSEMENT_UNDER_TRANSACTION_LIMIT リクエストされた支払い額が、インテグレーターの 1 回の取引あたりの最小金額を満たしていません。このコードを使用する場合は、ユーザーにメッセージが表示されるように、transactionMinLimit フィールドに最小取引額を入力します。
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT リクエストされた支払い額が、インテグレータの 1 回の取引あたりの上限を超えています。このコードを使用する場合は、ユーザーにメッセージが表示されるように、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

必須: インテグレータまたは内部のサブシステムからの未加工のコード。