---
updatedAt: 2026-05-29T16:44:17.000Z
---

Fetch the complete documentation index at: https://developers.pismo.io/pismo-docs/llms.txt. Use this file to discover all available pages before exploring further.

# Cancel transfer funds

**Note:** Enhanced features and improvements are available in the [Payment methods](doc:payment-methods) API, the new application interface for non-card network authorizations. This Cancel transfer funds endpoint is still supported, but all new feature developments will be available only in the Payment methods API. For more information, contact your Pismo representative.

-----
Cancel a previously authorized transfer made with the [Transfer funds](ref:post-payments-v1-payments) endpoint. 
Pass one of two parameters (but not both) returned from the Transfer funds endpoint to identify the transfer to be canceled:
- The `tracking_id` (pass as `original_tracking_id`)
- The credit or debit authorization ID (pass as `authorization_id`). 

For an external operation, the acquirer response is returned in the `metadata` field.
If no processing codes are specified, the original authorization's reversal processing codes are used.

This endpoint generates an [Authorization cancelled](https://developers.pismo.io/events/docs/authorization-authorization-cancellation-event-1) event.

For additional information, see the [Cancel transfer](doc:cancel-transfer) guide.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Core platform - Payment methods",
    "version": "1.0.0",
    "description": "API to handle payments.",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io",
      "description": "Sandbox API server for testing"
    },
    {
      "url": "https://gw-pci.pismolabs.io",
      "description": "Sandbox PCI API server for testing"
    }
  ],
  "tags": [
    {
      "name": "Payments",
      "description": "Endpoints to manage payments and transfers."
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Account access token. Tokens can expire quickly, which can result in an \"Unauthorized\" error.",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "AcceptedResponse": {
        "properties": {
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": "EP2P0010",
            "deprecated": true
          },
          "code": {
            "type": "string",
            "description": "Error code",
            "example": "EP2P0010"
          },
          "message": {
            "type": "string",
            "description": "Message that the request is processing and will finish asynchronously.",
            "example": "Request is processing and will finish asynchronously"
          }
        },
        "title": "AcceptedResponse",
        "description": "Object indicating request could not finish synchronously but will be completed later"
      },
      "AcquirerCredential": {
        "title": "AcquirerCredential",
        "properties": {
          "credential": {
            "description": "Information used to authenticate with custom credentials at the acquirer",
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "UUID key used to obtain authentication information used at the acquirer. This field will only be validated when present on the payload, and it is currently forwarded only to REDE acquirer.",
                "example": "5f1c280e-ffde-4081-a126-5f2f10a96c2f"
              }
            }
          }
        }
      },
      "AuthorizationIDs": {
        "description": "Credit and debit authorization IDs.",
        "properties": {
          "credit": {
            "description": "Credit authorization ID.",
            "type": "integer",
            "format": "int64",
            "example": 15301234
          },
          "debit": {
            "description": "Debit authorization ID.",
            "type": "integer",
            "format": "int64",
            "example": 15301235
          }
        },
        "title": "AuthorizationIDs"
      },
      "CancelModel": {
        "type": "object",
        "description": "Payload object for `v2/cancel` (cancel transfer) endpoint.",
        "properties": {
          "authorization_id": {
            "type": "integer",
            "format": "int64",
            "example": 15301234,
            "minimum": 1,
            "description": "Credit or debit authorization ID (`authorization_ids.credit` or `authorization_ids.debit`) returned in the response of the original transfer from the [Transfer funds](https://developers.pismo.io/pismo-docs/reference/post-payments-v1-payments) endpoint. \n\nEither this field or the `original_tracking_id` field is **REQUIRED** to identify the original transfer that needs to be canceled with this request.\n"
          },
          "tracking_id": {
            "type": "string",
            "minLength": 36,
            "maxLength": 65,
            "example": "1ff51e99-3a05-448a-bc19-7b5c05274174",
            "description": "Unique tracking ID of the pending cancellation. If you don't provide one, the Pismo platform generates it randomly. This field is useful for tracking and searching transaction information. \n\nThis field needs to be sent to guarantee the idempotence of the request. Requests that use the same tracking_id are considered the same. If tracking_id is not received, each request is treated as a new one.\n",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          },
          "original_tracking_id": {
            "type": "string",
            "description": "Unique tracking ID of the original operation to be cancelled, which is returned from the [Transfer funds](https://developers.pismo.io/pismo-docs/reference/post-payments-v1-payments) endpoint as `tracking_id`.\n\nEither this field or the `authorization_id` field is **REQUIRED** to identify the original transfer that needs to be cancelled with this request.\n",
            "example": "0d240226-d03e-47eb-ab3f-6d57c7d5feeb",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          },
          "amount": {
            "type": "number",
            "format": "float",
            "example": 9.95,
            "minimum": 0.01,
            "description": "Full or partial amount to cancel, which cannot be more than the original transaction amount. Maximum of two decimal places.\n"
          },
          "cancel_fees": {
            "type": "boolean",
            "description": "Indicates whether to cancel associated fees when canceling a transfer operation. When set to `true`, if a total or partial cancellation of an operation with a fee occurs, the platform automatically cancels the associated fee also.\nWhen this flag is not provided:\n- if a total cancellation of an operation with a fee occurs, the platform automatically cancels the fee also.\n- if a partial cancellation of an operation with a fee occurs, the platform does not cancel the fee.\n",
            "example": false
          },
          "processing_code": {
            "type": "object",
            "additionalProperties": false,
            "description": "This optional field identifies the processing codes to be used in the cancellation operation. Depending on the type of transaction you want to cancel, this object can contain only one subfield of string type: `credit` or `debit`. \n\nIf no processing codes are specified, the platform uses the processing codes that correspond to the reversal of original authorization.\n\nDo not use a reversal processing code in this field since the endpoint processes a reversal operation, automatically gathering the reversal processing code.\n",
            "properties": {
              "credit": {
                "type": "string",
                "example": "002000",
                "pattern": "^[0-9]{6}$",
                "description": "Credit operation processing code."
              },
              "debit": {
                "type": "string",
                "example": "004000",
                "pattern": "^[0-9]{6}$",
                "description": "Debit operation processing code."
              }
            }
          },
          "acquirer": {
            "$ref": "#/components/schemas/AcquirerCredential"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "descriptor": {
            "type": "string",
            "example": "eShop purchase cancellation",
            "description": "This field allows you to provide an optional cancellation description. \n\nThe Pismo platform passes this field to the acquirer in transactions involving calls to the acquirer.\n"
          }
        },
        "required": [
          "amount"
        ],
        "title": "CancelModel"
      },
      "CancelResponse": {
        "title": "CancelResponse",
        "type": "object",
        "properties": {
          "tracking_id": {
            "type": "string",
            "description": "Provided `tracking_id` or the identifier automatically generated by the Pismo platform.",
            "example": "be68db6e-8da0-4761-8632-6a51857bd123",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          },
          "authorization_datetime": {
            "type": "string",
            "description": "Authorization timestamp in the UTC-0 (RFC3339) format.",
            "example": "2006-01-02T15:04:05.000Z"
          },
          "authorization_ids": {
            "$ref": "#/components/schemas/AuthorizationIDs"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        },
        "required": [
          "tracking_id",
          "authorization_ids"
        ],
        "description": "Success response object for  `v2/cancel`"
      },
      "ErrorModel": {
        "description": "API generic returned error.",
        "type": "object",
        "properties": {
          "error_code": {
            "type": "string",
            "description": "Error code.",
            "deprecated": true
          },
          "code": {
            "type": "string",
            "description": "Error code."
          },
          "message": {
            "type": "string",
            "description": "Error description."
          }
        },
        "title": "ErrorModel"
      },
      "TrackingIdHasAlreadyInUsedResponse": {
        "properties": {
          "authorization_ids": {
            "$ref": "#/components/schemas/AuthorizationIDs"
          },
          "tracking_id": {
            "description": "Same transaction ID filled on request.",
            "type": "string",
            "example": "e12df252-2133-4689-8598-3a157adcfb3a"
          }
        },
        "title": "TrackingIdHasAlreadyInUsedResponse",
        "description": "Tracking ID has already in use error object."
      },
      "Metadata": {
        "type": "object",
        "description": "This optional user-defined key-value object field can be used with external operations to provide additional context or supplementary custom information for the operation. \n\nThe Pismo platform does not perform any validation or processing on this field but passes this object to the acquirer in transactions involving calls to the acquirer and sends it in the events related to the stream of data produced at the end of the request.\n\n**Note**: This field must not be used to send Personally Identifiable Information (PII), Payment Card Industry (PCI) data, or any sensitive/regulated information. Metadata fields are intended for operational, non-sensitive data only. For sensitive data, use the specific parameters designed for that purpose. For more information, refer to [Get started with Pismo APIs](https://developers.pismo.io/pismo-docs/reference/get-started-with-pismo-apis#metadata).\n",
        "example": {
          "any-key": "any-value"
        }
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/payments/v2/cancel": {
      "post": {
        "operationId": "post-payments-v2-cancel",
        "summary": "Cancel transfer funds",
        "description": "**Note:** Enhanced features and improvements are available in the [Payment methods](https://developers.pismo.io/pismo-docs/docs/payment-methods) API, the new application interface for non-card network authorizations. This Cancel transfer funds endpoint is still supported, but all new feature developments will be available only in the Payment methods API. For more information, contact your Pismo representative.\n\n-----\nCancel a previously authorized transfer made with the [Transfer funds](https://developers.pismo.io/pismo-docs/reference/post-payments-v1-payments) endpoint. \nPass one of two parameters (but not both) returned from the Transfer funds endpoint to identify the transfer to be canceled:\n- The `tracking_id` (pass as `original_tracking_id`)\n- The credit or debit authorization ID (pass as `authorization_id`). \n\nFor an external operation, the acquirer response is returned in the `metadata` field.\nIf no processing codes are specified, the original authorization's reversal processing codes are used.\n\nThis endpoint generates an [Authorization cancelled](https://developers.pismo.io/events/docs/authorization-authorization-cancellation-event-1) event.\n\nFor additional information, see the [Cancel transfer](https://developers.pismo.io/pismo-docs/docs/cancel-transfer) guide.",
        "tags": [
          "Payments"
        ],
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "in": "header",
            "name": "x-tenant",
            "required": true,
            "description": "Unique Org ID.",
            "schema": {
              "type": "string",
              "example": "TN-c0e4c660-9059-404c-ab22-761aa431766c",
              "pattern": "TN\\-[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}",
              "minLength": 39,
              "maxLength": 39
            }
          },
          {
            "in": "header",
            "name": "x-cid",
            "description": "Related correlation ID. If none is provided, a random one is generated.",
            "schema": {
              "type": "string",
              "example": "c737895c-8159-4c0c-a92a-a4f8600bff37"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptedResponse"
                }
              }
            }
          },
          "208": {
            "description": "Already reported",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "Authorization already cancelled": {
                    "value": {
                      "error_code": "AMON0004",
                      "code": "AMON0004",
                      "message": "Authorization was already refunded/reversed."
                    }
                  },
                  "Duplicated Correlation ID": {
                    "value": {
                      "error_code": "WP2P0009",
                      "code": "WP2P0009",
                      "message": "Duplicated correlation ID."
                    }
                  },
                  "Payment denied": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Payment was previously denied and can't be cancelled."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "Refund amount error": {
                    "value": {
                      "error_code": "AMON0000",
                      "code": "AMON0000",
                      "message": "The amount passed 51 is greater than the current balance 50"
                    }
                  },
                  "Invalid payload": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Invalid payload"
                    }
                  },
                  "Amount cannot be negative": {
                    "value": {
                      "error_code": "WP2P1005",
                      "code": "WP2P1005",
                      "message": "The amount cannot be negative or zero"
                    }
                  },
                  "The amount is greater than": {
                    "value": {
                      "error_code": "EP2P0005",
                      "code": "EP2P0005",
                      "message": "The amount passed 1000 is greater than the current balance 800.00"
                    }
                  },
                  "Not possible to change limit": {
                    "value": {
                      "error_code": "WP2P1111",
                      "code": "WP2P1111",
                      "message": "Not possible to change limit."
                    }
                  },
                  "Unable to cancel a Force authorization": {
                    "value": {
                      "error_code": "EP2P0011",
                      "code": "EP2P0011",
                      "message": "Unable to cancel a Force authorization"
                    }
                  },
                  "Unable to cancel an Installment authorization": {
                    "value": {
                      "error_code": "EP2P0013",
                      "code": "EP2P0013",
                      "message": "Unable to cancel an Installment authorization"
                    }
                  },
                  "Only one processing code": {
                    "value": {
                      "error_code": "EP2P0005",
                      "code": "EP2P0005",
                      "message": "Only one processing code can be provided for external cancels"
                    }
                  },
                  "No Orgs Operation Found": {
                    "value": {
                      "error_code": "WP2P0003",
                      "code": "WP2P0003",
                      "message": "No Orgs Operation Found"
                    }
                  },
                  "More than one org operation found": {
                    "value": {
                      "error_code": "WP2P0003",
                      "code": "WP2P0003",
                      "message": "More than one org operation found"
                    }
                  },
                  "Unable to proceed with request": {
                    "value": {
                      "error_code": "EP2P9999",
                      "code": "EP2P9999",
                      "message": "Unable to proceed with request!"
                    }
                  },
                  "Merchant or Merchant parameters not found": {
                    "value": {
                      "error_code": "WP2P3003",
                      "code": "WP2P3003",
                      "message": "No Merchant or Merchant parameters found. Check for a valid merchant or configured merchant operations"
                    }
                  },
                  "Authorization process is still ongoing": {
                    "value": {
                      "error_code": "WP2P0033",
                      "code": "WP2P0033",
                      "message": "Authorization process is still ongoing."
                    }
                  },
                  "Limit of two decimal places": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "The amount must have a maximum of two decimal places."
                    }
                  },
                  "Exceed amount limit": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "A maximum of 20 digits, including two decimals, is allowed for the amount field."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "Authorization not found": {
                    "value": {
                      "error_code": "WP2P0008",
                      "code": "WP2P0008",
                      "message": "Authorization not found."
                    }
                  },
                  "Reversal Processing Code not Found": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "No Reversal Processing Code Found"
                    }
                  },
                  "Account not found": {
                    "value": {
                      "error_code": "WLDG0019",
                      "code": "WLDG0019",
                      "message": "No Accounts authorization found."
                    }
                  },
                  "No AvailableIntegrity found": {
                    "value": {
                      "error_code": "WLDG0004",
                      "code": "WLDG0004",
                      "message": "No AvailableIntegrity found"
                    }
                  },
                  "No limit available": {
                    "value": {
                      "error_code": "WLDG0006",
                      "code": "WLDG0006",
                      "message": "No AvailableCreditLimit to complete the transaction - amount: 15, availableCreditLimit: -121.07"
                    }
                  },
                  "Insufficient funds": {
                    "value": {
                      "error_code": "WLDG0005",
                      "code": "WLDG0005",
                      "message": "No Available Entries found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/TrackingIdHasAlreadyInUsedResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ErrorModel"
                    }
                  ]
                },
                "examples": {
                  "Tracking id is being used in an ongoing request": {
                    "value": {
                      "error_code": "WP2P0010",
                      "code": "WP2P0010",
                      "message": "Tracking id is already in use."
                    }
                  },
                  "Authorization already cancelled": {
                    "value": {
                      "error_code": "AMON0004",
                      "code": "AMON0004",
                      "message": "Authorization already refunded/reversed"
                    }
                  },
                  "Duplicated Correlation ID": {
                    "value": {
                      "error_code": "WP2P0009",
                      "code": "WP2P0009",
                      "message": "Duplicated correlation ID."
                    }
                  },
                  "Payment denied": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Payment was previously denied and can't be cancelled."
                    }
                  },
                  "Authorization_ID is being used in an ongoing request": {
                    "value": {
                      "error_code": "WP2P0009",
                      "code": "WP2P0009",
                      "message": "Parent ID is already in use."
                    }
                  },
                  "Tracking id has been already used": {
                    "value": {
                      "tracking_id": "d24729c0-0c2b-4ee4-b599-8c2fcebf0280",
                      "authorizations_ids": {
                        "debit": 33636662,
                        "credit": 0
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "Database connection error": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Database connection error"
                    }
                  },
                  "Acquirer communication error": {
                    "value": {
                      "error_code": "ACQ0001",
                      "code": "ACQ0001",
                      "message": "Internal server error"
                    }
                  },
                  "Error with acquirer": {
                    "value": {
                      "error_code": "ACQ0000",
                      "code": "ACQ0000",
                      "message": "Unknown error"
                    }
                  },
                  "Error with other apis": {
                    "value": {
                      "error_code": "EP2P9999",
                      "code": "EP2P9999",
                      "message": "Unable to proceed with request!"
                    }
                  },
                  "Unmarshal error": {
                    "value": {
                      "error_code": "ELDG500",
                      "code": "ELDG500",
                      "message": "Unmarshal error"
                    }
                  },
                  "Unexpected Error": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Unexpected Error"
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "Unable to connect to acquirer gateway": {
                    "value": {
                      "error_code": "EP2P0001",
                      "code": "EP2P0001",
                      "message": "Unable to connect to acquirer gateway"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```