Method: asynchronousCapture

Triggers the start of a money movement operation between a customer's account and the integrator. The integrator should acknowledge the request and perform whatever actions need to happen in order to complete the capture (e.g., collect a PIN from the user). The integrator will inform Google of the capture's final result by calling the CaptureResultNotification API.

The combination of requestId within the header and paymentIntegratorAccountId is the idempotency key and uniquely identifies this transaction. All mutations on this transaction (refund) populate the requestId value in the transactionId field.

If the endpoint encounters an error while processing the request, the response body from this endpoint should be of type ErrorResponse.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1
    },
    "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
    "requestTimestamp": {
      "epochMillis": "1502220196077"
    },
    "paymentIntegratorAccountId": "InvisiCashIN_INR"
  },
  "tokenizedInstrumentDetails": {
      "googlePaymentToken": {
        "issuerId": {
            "value": "invisicash"
        },
        "token": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ"
      }
  },
  "transactionDescription": "Google - Music",
  "amount": {
    "amountMicros": "728000000",
    "currencyCode": "INR"
  },
  "tax": {
    "amountMicros": "27300000",
    "currencyCode": "INR"
  }
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": {
      "epochMillis": "1481900013178"
    }
  },
  "result": {
    "acknowledged": {}
  }
}

HTTP request

POST https://payment-integrator-carriers-api.google.com/integrator-base-path/carrier-wallets-v1/asynchronousCapture

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "transactionDescription": string,
  "amount": {
    object (Amount)
  },
  "tax": {
    object (Amount)
  },

  // Union field fopDetails can be only one of the following:
  "tokenizedInstrumentDetails": {
    object (TokenizedInstrumentDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

transactionDescription

string

REQUIRED: This is the description of the transaction that can be put on the customer's statement. Localized to the userLocale found in the requestHeader. This format can be changed without notice and must never be parsed.

amount

object (Amount)

REQUIRED: The amount of the purchase.

tax

object (Amount)

REQUIRED: The amount of the purchase the buyer is paying in taxes.

Union field fopDetails.

fopDetails can be only one of the following:

tokenizedInstrumentDetails

object (TokenizedInstrumentDetails)

Payment details specific to Tokenized instruments.

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

object (AsynchronousCaptureResponse)

HTTP 4XX / 5XX Status

object (ErrorResponse)

TokenizedInstrumentDetails

Details about the account to capture from.

JSON representation
{
  "googlePaymentToken": {
    object (GooglePaymentToken)
  }
}
Fields
googlePaymentToken

object (GooglePaymentToken)

REQUIRED: This is the token that both companies will use to identify the account for purchases between each other.

AsynchronousCaptureResponse

Response object for the capture method.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": {
    object (AsynchronousCaptureResult)
  }
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

result

object (AsynchronousCaptureResult)

REQUIRED: The result of the asynchronous capture call.

AsynchronousCaptureResult

Result codes for asynchronousCapture.

JSON representation
{

  // Union field result can be only one of the following:
  "acknowledged": {
    object (Empty)
  }
  // End of list of possible types for union field result.
}
Fields

Union field result.

result can be only one of the following:

acknowledged

object (Empty)

The capture has been requested and the integrator will do additional steps to determine if the capture was successful or declined. Once the integrator knows the result of the capture, they will inform Google of the result by calling the captureResultNotification API.