Page Summary
-
Initiates money movement between a customer's Google account and the payment processor.
-
Utilizes
requestIdandpaymentIntegratorAccountIdas the idempotency key for unique transaction identification. -
Supports transferring funds to various destinations including Google Bank Accounts, external bank accounts, and Payee Proxies.
-
Responses indicate the transaction status, which can be either a definitive result or a pending status.
-
Includes detailed request and response structures with field descriptions and example JSON payloads.
Initiates money movement between a customer's account held with Google and the payment processor. The requestId within the header 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 | |
|---|---|
requestHeader |
REQUIRED: Common header for all requests. |
transactionDescription |
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 |
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. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: |
|
googlePaymentToken |
The Google Payment Token identifying the payer bank account. |
vendorPaymentToken |
The vendor payment token identifying the payer bank account. |
| End of mutually exclusive fields. | |
| REQUIRED: The destination of the funds transfer. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: | |
googleBankAccount |
A bank account that is owned by Google (as opposed to a user). |
destinationBankAccount |
Destination account that is not held by Google. |
payeeProxy |
Payee that is referenced by a PayeeProxyKey |
googlePaymentTokenPayee |
The Google Payment Token identifying the payee bank account. |
vendorPaymentTokenPayee |
The vendor payment token identifying the payee bank account. |
| End of mutually exclusive fields. | |
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 |
|
| End of mutually exclusive fields. | |
PayeeProxyDestination
Destination for Payee that uses a PayeeProxy key to reference a payee.
| JSON representation |
|---|
{
"payeeProxyKey": {
object ( |
| Fields | |
|---|---|
payeeProxyKey |
REQUIRED: Proxy Key that will be used for the Payee. |
payeeProxyLookupRequestId |
OPTIONAL: |
TransferFundsResponse
Response object for the funds transfer method.
| JSON representation |
|---|
{ "responseHeader": { object ( |
| Fields | |
|---|---|
responseHeader |
REQUIRED: Common header for all responses. |
paymentIntegratorTransactionId |
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 |
| REQUIRED: The result of this funds transfer. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: | |
result |
Result of the FundsTransfer operation. |
resultNotKnownYet |
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. |
| End of mutually exclusive fields. | |