Method: paycache.captureFundsReservation

Requests the bank capture the money from a prior funds reservation.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1
    },
    "requestId": "G1MQ0YERJ0Q7LPM",
    "requestTimestamp": {
      "epochMillis":1481899949606
    },
    "paymentIntegratorAccountId": "abcdef123456"
  },
  "transactionId": "TXN67891",
  "reservationTransactionId":"TXN67890",
  "amount": {
    "amountMicros":1000000,
    "currencyCode":"USD"
  },
  "googleAccountToken": "A1234567890"
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": {
      "epochMillis":1481899950236
    }
  },
  "result": {
    "succeeded": {}
  },
  "accountBalances": {
    "currentLedgerBalance": {
      "timestamp": {
        "epochMillis":1481899949606
      },
      "amount": {
        "amountMicros":0,
        "currencyCode":"USD"
      }
    },
    "currentAvailableBalance": {
      "timestamp": {
        "epochMillis":1481899949606
      },
      "amount": {
        "amountMicros":0,
        "currencyCode":"USD"
      }
    }
  },
  "upsertTimestamp": {
    "epochMillis":1481899950236
  },
  "partnerTransactionId":"TXN67890"
}

HTTP request

POST https://www.integratordomain.com/v1/paycache/captureFundsReservation

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "transactionId": string,
  "reservationTransactionId": string,
  "amount": {
    object (Amount)
  },
  "googleAccountToken": string
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

transactionId
(deprecated)

string

DEPRECATED: The unique ID of this capture (debit) transaction on a customer's account. This value uniquely identifies the money movement during settlement and when inquiring about transactions against a customer account.

This will be removed before the final version of this spec.

reservationTransactionId

string

REQUIRED: The transactionId of the funds reservation (hold) sent during a prior call to reserveFunds which is made inactive by this request to capture funds.

amount

object (Amount)

REQUIRED: The amount to be captured.

googleAccountToken

string

REQUIRED: This is a temporary field to facilitate a workaround for testing the transfer API. This field has no significance to the operation of the transfer, it will be removed after the real authorization mechanism is implemented.

Response body

If successful, the response body contains data with the following structure:

Response object for paycache.captureFundsReservation call.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": {
    object (Result)
  },
  "accountBalanceSummary": {
    object (AccountBalanceSummary)
  },
  "accountBalances": {
    object (AccountBalances)
  },
  "debit": {
    object (Debit)
  },
  "upsertTimestamp": {
    object (Timestamp)
  },
  "partnerTransactionId": string
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

result

object (Result)

REQUIRED: The outcome of the capture funds reservation request.

accountBalanceSummary
(deprecated)

object (AccountBalanceSummary)

DEPRECATED: An up-to-date summary of the customer's account balance after applying the capture funds reservation result.

Deprecated due to the balance amounts not containing timestamps.

This will be removed before the final version of this spec. Please use accountBalances instead.

accountBalances

object (AccountBalances)

REQUIRED: An up-to-date summary of the customer's account balance after applying the capture funds reservation result.

debit

object (Debit)

DEPRECATED: The booked debit that was applied to the account. This should match the transactionId from the pending debit in the ReserveFundsResponse.

This was deprecated because if forced the response to contain a lot of duplicate information be simply copied from the ReserveFundsRequest. It also permitted response outcome conflicts by allowing a different transaction state than the outcome reported in the result.

This will be removed before this API is finalized. Please use partnerTransactionId instead.

upsertTimestamp

object (Timestamp)

REQUIRED: Timestamp of when the debit was created within the partner's system. This timestamp will compared against the upsertTimestamp of any upsertTransactions notifications about this transaction, to determine the most up-to-date transaction status.

partnerTransactionId

string

REQUIRED: The partner-defined unique ID of this transaction on a customer's account.

Result

JSON representation
{

  // Union field result can be only one of the following:
  "succeeded": {
    object (Empty)
  },
  "expiredFundsReservation": {
    object (Empty)
  },
  "amountExceedsFundsReservation": {
    object (Empty)
  },
  "insufficientFunds": {
    object (Empty)
  },
  "suspectedFraud": {
    object (Empty)
  },
  "accountOnHold": {
    object (Empty)
  }
  // End of list of possible types for union field result.
}
Fields

Union field result.

result can be only one of the following:

succeeded

object (Empty)

The bank has successfully booked the transaction.

expiredFundsReservation

object (Empty)

The prior reservation of funds has expired.

amountExceedsFundsReservation

object (Empty)

The requested capture amount exceeds the funds reserved.

insufficientFunds

object (Empty)

Insufficient funds in the account.

suspectedFraud

object (Empty)

The bank suspects that this transaction is fraud.

accountOnHold

object (Empty)

The account is on hold.