Method: cancelFundsReservation

  • The cancelFundsReservation API initiates the cancellation of reserved funds for a transaction, identified by reserveFundsRequestId.

  • Upon receiving the request, the endpoint should either acknowledge it and subsequently notify the result via cancelFundsReservationResultNotification or return an ErrorResponse in case of errors.

  • The request body includes the requestHeader, paymentIntegratorAccountId, and the reserveFundsRequestId to identify the specific funds reservation to cancel.

  • The response body will contain either a CancelFundsReservationResponse with the result of the operation or an ErrorResponse in case of errors during processing.

  • Even if the reservation has expired or been automatically canceled, it should be considered a successful cancellation and an acknowledgement should be sent.

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 final result of the cancel is supplied by a call to cancelFundsReservationResultNotification. 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 an ACKNOWLEDGED response code and call cancelFundsReservationResultNotification.

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,
      "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/redirect-payment-token-v1/cancelFundsReservation

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "reserveFundsRequestId": string
}
Fields
requestHeader

object (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.

Possible response messages
HTTP 200 Status

object (CancelFundsReservationResponse)

HTTP 4XX / 5XX Status

object (ErrorResponse)

CancelFundsReservationResponse

Response object for the cancel method.

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

object (ResponseHeader)

REQUIRED: Common header for all responses.

result

enum (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.