Initiates money movement between a customer's account held with Google and the payment processor. The combination of requestId
within the header and paymentIntegratorAccountId
is the idempotency key and uniquely identifies this transaction. All mutations on this transaction (refunds) populate the requestId
value in the captureRequestId
field.
An example request looks like:
{
"requestHeader": {
"protocolVersion": {
"major": 2
},
"requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": {
"epochMillis": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD"
},
"googlePaymentToken": {
"issuerId": {
"value": "InvisiCash"
},
"token": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ"
},
"transactionDescription": "Google - Music",
"amount": {
"amountMicros": "728000000",
"currencyCode": "INR"
},
"destinationBankAccount": {
"bankAccountId": {
"usBankAccount": {
"accountNumber": {
"number": "1234-5678-91"
},
"bankIdentifier": {
"swiftBic": {
"value": "XXXXSGS0XXX"
},
"usAbaRoutingNumber":{
"value": "206764189"
}
}
}
},
"bankAccountOwner": {
"name": "Sam User"
}
}
}
An example response looks like:
{
"responseHeader": {
"responseTimestamp": {
"epochMillis": "1481900013178"
}
},
"result": { "success": {} },
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
HTTP request
POST https://www.integratorhost.example.com/integrator-base-path/v2/transferFunds
Request body
The request body contains data with the following structure:
JSON representation |
---|
{ "requestHeader": { object ( |
Fields | |
---|---|
request |
REQUIRED: Common header for all requests. |
transaction |
REQUIRED: This is the description of the transaction that can be put on the customer's statement. Localized to the userLocale found in the |
amount |
REQUIRED: The amount of the transfer |
Union field payment_token . REQUIRED: This is the token that both companies will use to identify the bank account that was associated during the associateAccount method. This identifies the payer bank account in this call. payment_token can be only one of the following: |
|
google |
|
vendor |
|
Union field
|
|
google |
A bank account that is owned by Google (as opposed to a user). |
destination |
Destination account that is not held by Google. |
payee |
Payee that is referenced by a PayeeProxyKey |
google |
|
vendor |
|
Response body
This method supports multiple return types. For additional information about what 4XX or 5XX HTTP status code to return with an ErrorResponse
, consult the ErrorResponse
object and HTTP status codes documentation.
Possible response messages | |
---|---|
HTTP 200 Status |
|
HTTP 4XX / 5XX Status |
|
PayeeProxyDestination
Destination for Payee that uses a PayeeProxy key to reference a payee.
JSON representation |
---|
{
"payeeProxyKey": {
object ( |
Fields | |
---|---|
payee |
REQUIRED: Proxy Key that will be used for the Payee. |
payee |
OPTIONAL: |
TransferFundsResponse
Response object for the funds transfer method.
JSON representation |
---|
{ "responseHeader": { object ( |
Fields | |
---|---|
response |
REQUIRED: Common header for all responses. |
payment |
OPTIONAL: This identifier is specific to the integrator and is generated by the integrator. This is the identifier that the integrator knows this transaction by. For convenience, this identifier is included with in the remittance details |
Union field transaction_status . REQUIRED: The result of this funds transfer. transaction_status can be only one of the following: |
|
result |
Result of the FundsTransfer operation. |
result |
Captures the scenario where the integrator itself doesn't have a definite status, maybe because they have not received it from the underlying payment network. |