- [HTTP request](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#body.request_body)
  - [JSON representation](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#body.response_body)
- [CancelFundsReservationResponse](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#CancelFundsReservationResponse)
  - [JSON representation](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#CancelFundsReservationResponse.SCHEMA_REPRESENTATION)
- [CancelReservedFundsResultCode](https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#CancelReservedFundsResultCode)

Initiates canceling the funds that were reserved by a `reserveFunds` call.

This cancels the pending transaction by freeing the reserved funds. The `reserveFundsRequestId` identifies which funds reservation is being canceled. When this is used, there is no money movement from a customer's account for this transaction. The `requestId` within the header is the idempotency key and uniquely identifies this transaction.

If the reservation of funds has expired or the payment integrator has automatically canceled the reservation, consider it a successful cancel rather than an error. Therefore, return a success result.

If the endpoint encounters an error while processing the request, the response body from this endpoint should be of type `https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/ErrorResponse`.

An example request looks like:


    {
      "requestHeader": {
        "protocolVersion": {
          "major": 1,
          "minor": 0,
          "revision": 0
        },
        "requestId": "G1NMPDFX4AW395L",
        "requestTimestamp": "1481907920000"
      },
      "paymentIntegratorAccountId": "SpeedyPaymentsIndia_INR",
      "reserveFundsRequestId": "G1MQ0YERJ0Q7LPM"
    }

An example response looks like:


    {
      "responseHeader": {
        "responseTimestamp": "1481907920760"
      },
      "result": "SUCCESS"
    }

### HTTP request

`POST https://www.integratorhost.example.com/integrator-base-path/e-wallets-v1/cancelFundsReservation`

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requestHeader": { object (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/RequestHeader`) }, "paymentIntegratorAccountId": string, "reserveFundsRequestId": string } ``` |

| Fields ||
|---|---|
| `requestHeader` | ``object (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/RequestHeader`)`` **REQUIRED**: Common header for all requests. |
| `paymentIntegratorAccountId` | `string` **REQUIRED**: This is the payment integrator account identifier that identifies contractual constraints around this transaction. |
| `reserveFundsRequestId` | `string` **REQUIRED** : `requestId` of the reserve funds call for this transaction. |

### 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](https://developers.google.com/pay/e-wallets-v1/guides/connectivity/protocol-standards#http_status_codes).

| Possible response messages ||
|---|---|
| HTTP 200 Status | ``object (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#CancelFundsReservationResponse`)`` |
| HTTP 4XX / 5XX Status | ``object (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/ErrorResponse`)`` |
| End of mutually exclusive fields. ||

## CancelFundsReservationResponse

Response object for the cancel method.

| JSON representation |
|---|
| ``` { "responseHeader": { object (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/ResponseHeader`) }, "result": enum (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#CancelReservedFundsResultCode`) } ``` |

| Fields ||
|---|---|
| `responseHeader` | ``object (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/ResponseHeader`)`` **REQUIRED**: Common header for all responses. |
| `result` | ``enum (`https://developers.google.com/pay/e-wallets-v1/payment-integrator-e-wallets-api/cancelFundsReservation#CancelReservedFundsResultCode`)`` **REQUIRED**: Result of this cancel. |

## CancelReservedFundsResultCode

Result codes for capture.

| Enums ||
|---|---|
| `CANCEL_RESERVED_FUNDS_RESULT_CODE_UNSPECIFIED` | Do not ever set this default value! |
| `SUCCESS` | Successfully cancelled. |