---
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

Cancel an existing transfer operation. If you don't provide the `amount`, the platform cancels the total original amount. You can also provide the `amount` to cancel a total or partial amount.

Refer to the [Payment methods](doc:payment-methods) guide for additional information.

This endpoint generates a [Platform authorization created](https://developers.pismo.io/events/docs/platform-authorization-platform-authorization-1) event.

**Note:** This is a PCI endpoint, use the https://gw-pci.pismolabs.io environment.


# 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": "Payment methods",
      "description": "Endpoints to manage cash-in and cash-out payments and P2P 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": {
      "AccountID": {
        "description": "Pismo account ID.",
        "type": "integer",
        "format": "int64",
        "example": 8675309
      },
      "Amount": {
        "type": "number",
        "format": "float",
        "description": "Credit or debit amount.",
        "example": 100.23
      },
      "DenialCode": {
        "type": "string",
        "description": "Denial code.",
        "example": "DAL"
      },
      "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"
        }
      },
      "OriginalTrackingID": {
        "type": "string",
        "description": "Tracking ID for the original operation.",
        "minLength": 36,
        "maxLength": 50,
        "example": "249fbd1c-cfcd-48aa-8bcb-1ffe3a5f7978"
      },
      "ResponseCode": {
        "type": "string",
        "description": "Alphanumeric two-character standard card network response code or an alternative custom response code, which provides the precise reason for the success or denial of the operation by the card network, platform, or anti-fraud solution.\n",
        "example": "57"
      },
      "TrackingID": {
        "type": "string",
        "description": "Unique tracking ID for this operation.",
        "minLength": 36,
        "maxLength": 50,
        "example": "0b6995e5-b417-9be4-92b3-3677f4440ebe"
      },
      "ValidationResults": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the evaluated rule.",
              "example": "LEDGER"
            },
            "status": {
              "type": "string",
              "enum": [
                "APPROVED",
                "REJECTED",
                "SKIPPED"
              ],
              "description": "Identifies if the rule was approved, rejected, or skipped during the validation flow.",
              "example": "REJECTED"
            },
            "reason": {
              "type": "string",
              "description": "Status reason why the specific rule was approved, rejected, or skipped.",
              "example": "LEDGER_INSUFFICIENT_FUNDS"
            },
            "description": {
              "type": "string",
              "description": "Description of the validation result.",
              "example": "The authorization amount is greater than the account available limit."
            },
            "additional_data": {
              "description": "Additional data for the validation result. This varies from validation to validation, but every denied validation has the `denial_code` and `response_code` fields.",
              "type": "object"
            }
          }
        }
      },
      "PaymentsCancelRequest": {
        "type": "object",
        "description": "Request payment cancellation.",
        "required": [
          "tracking_id",
          "original_tracking_id"
        ],
        "properties": {
          "tracking_id": {
            "$ref": "#/components/schemas/TrackingID"
          },
          "original_tracking_id": {
            "$ref": "#/components/schemas/OriginalTrackingID"
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        }
      },
      "PaymentsCancelResponse": {
        "type": "object",
        "description": "Response for a cash-in or cash-out cancel operation.",
        "required": [
          "tracking_id",
          "response_code"
        ],
        "properties": {
          "tracking_id": {
            "$ref": "#/components/schemas/TrackingID"
          },
          "account_id": {
            "$ref": "#/components/schemas/AccountID"
          },
          "response_code": {
            "$ref": "#/components/schemas/ResponseCode"
          },
          "denial_code": {
            "$ref": "#/components/schemas/DenialCode"
          },
          "validation_results": {
            "$ref": "#/components/schemas/ValidationResults"
          }
        },
        "example": {
          "tracking_id": "634c43f2-5b7e-4a80-81c7-e6a7d5edc7fe",
          "account_id": 456,
          "amount": 1000,
          "response_code": "00",
          "denial_code": "PRC",
          "validation_results": [
            {
              "name": "ACCOUNT_ID",
              "status": "APPROVED",
              "reason": "ACCOUNT_ID_PERMITTED",
              "description": "Account ID is permitted.",
              "additional_data": {
                "document_number": "6XXXXXXXXXX9",
                "external_id": "",
                "name": "Marcelito"
              }
            },
            {
              "name": "ORIGINAL_AUTHORIZATION",
              "status": "APPROVED",
              "reason": "ORIGINAL_AUTHORIZATION_APPROVED",
              "description": "Original authorization validation was approved."
            },
            {
              "name": "PROCESSING_CODE",
              "status": "APPROVED",
              "reason": "PROCESSING_CODE_FOUND",
              "description": "Processing code was found."
            },
            {
              "name": "PROCESSING_CODE_TYPE",
              "status": "APPROVED",
              "reason": "PROCESSING_CODE_TYPE_VALID",
              "description": "Processing code has a valid balance impact type."
            },
            {
              "name": "ACCOUNT_LIMITS",
              "status": "APPROVED",
              "reason": "ACCOUNT_LIMITS_FOUND",
              "description": "Account limits were found."
            },
            {
              "name": "ACCOUNT_STATUS",
              "status": "SKIPPED",
              "reason": "ACCOUNT_STATUS_SKIPPED",
              "description": "Account status validation was skipped.",
              "additional_data": {
                "cause": "Cancellations are forced operations and does not need to run this validation"
              }
            },
            {
              "name": "PROGRAM",
              "status": "APPROVED",
              "reason": "PROGRAM_FOUND",
              "description": "Program was found.",
              "additional_data": {
                "program_type": "PRE-PAGO"
              }
            },
            {
              "name": "REMAINING_CANCELLATION_BALANCE",
              "status": "REJECTED",
              "reason": "AUTHORIZATION_ALREADY_CANCELLED",
              "description": "Authorization was already cancelled.",
              "additional_data": {
                "denial_code": "PRC",
                "response_code": "57"
              }
            },
            {
              "name": "RATES",
              "status": "APPROVED",
              "reason": "RATES_APPROVED",
              "description": "Rates calculation was performed."
            },
            {
              "name": "LEDGER",
              "status": "APPROVED",
              "reason": "LEDGER_APPROVED",
              "description": "Ledger was impacted successfully.",
              "additional_data": {
                "dry_run": false,
                "validation_results": null,
                "account_id": 9999,
                "available_amounts": {
                  "validation_status": "APPROVED",
                  "details": {
                    "result": {
                      "available_credit_limit": 746847527710892.1,
                      "available_installment_limit": -226,
                      "available_savings_account_limit": 93477.42,
                      "available_withdraw_limit": -175,
                      "held_funds": 91.25,
                      "additional_funds": 0,
                      "overlimit": 2000000,
                      "total_overdraft_limit": 0
                    }
                  }
                }
              },
              "ledger_operation_status": {
                "validation_status": "APPROVED"
              }
            },
            {
              "name": "FLEX_CONTROLS",
              "status": "APPROVED",
              "reason": "FLEX_CONTROLS_APPROVED",
              "description": "Authorization passed flex control evaluation.",
              "additional_data": {
                "dry_run": false,
                "evaluated_controls": [
                  {
                    "id": "bb975c75-ae31-48e8-ac0b-57c677fdd0e4",
                    "name": "Purchase 1 Month credit card",
                    "evaluation_result": true,
                    "deny_code": "MAX_VALUE_P1M",
                    "response_code": "63",
                    "max_limit": 200000,
                    "accumulated_limit": 135127,
                    "available_limit": 64873
                  }
                ]
              }
            },
            {
              "name": "AUTHORIZATION",
              "status": "APPROVED",
              "reason": "AUTHORIZATION_CREATED",
              "description": "Authorization was created successfully."
            }
          ]
        }
      },
      "404Transfers": {
        "type": "object",
        "description": "* WONT0009 - Original authorization not found.\n",
        "properties": {
          "code": {
            "type": "string",
            "example": "WONT0009"
          },
          "message": {
            "type": "string",
            "example": "Original authorization not found."
          }
        }
      },
      "409Transfers": {
        "type": "object",
        "description": "Error codes available:\n  * WONT0003 - Tracking ID was already used.\n  * WONT0004 - Tracking ID is already in use by an ongoing request.\n",
        "properties": {
          "code": {
            "type": "string",
            "example": "WONT0003",
            "enum": [
              "WONT0003",
              "WONT0004"
            ]
          },
          "message": {
            "type": "string",
            "example": "Tracking ID is already in use by an ongoing request.",
            "enum": [
              "Tracking ID was already used.",
              "Tracking ID is already in use by an ongoing request."
            ]
          }
        }
      },
      "TransfersCancelResponse": {
        "type": "object",
        "properties": {
          "tracking_id": {
            "$ref": "#/components/schemas/TrackingID"
          },
          "response_code": {
            "$ref": "#/components/schemas/ResponseCode"
          },
          "denial_code": {
            "$ref": "#/components/schemas/DenialCode"
          },
          "from": {
            "$ref": "#/components/schemas/PaymentsCancelResponse"
          },
          "to": {
            "$ref": "#/components/schemas/PaymentsCancelResponse"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Application-specific error code"
          },
          "message": {
            "type": "string",
            "description": "Error explanation"
          },
          "violations": {
            "type": "object",
            "description": "Field-level validation failures (keys are dynamic)",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "code",
          "message"
        ]
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/payment-methods/v2/transfers/cancel": {
      "post": {
        "summary": "Cancel transfer",
        "description": "Cancel an existing transfer operation. If you don't provide the `amount`, the platform cancels the total original amount. You can also provide the `amount` to cancel a total or partial amount.\n\nRefer to the [Payment methods](https://developers.pismo.io/pismo-docs/docs/payment-methods) guide for additional information.\n\nThis endpoint generates a [Platform authorization created](https://developers.pismo.io/events/docs/platform-authorization-platform-authorization-1) event.\n\n**Note:** This is a PCI endpoint, use the https://gw-pci.pismolabs.io environment.\n",
        "operationId": "post-transfers-cancel",
        "tags": [
          "Payment methods"
        ],
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsCancelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request was processed successfully, existing authorization with the corresponding `tracking_id` returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransfersCancelResponse"
                }
              }
            }
          },
          "201": {
            "description": "Request was processed successfully, new authorization created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransfersCancelResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Amount required": {
                    "value": {
                      "code": "WONP0001",
                      "message": "Payload is invalid. It must be a valid JSON.",
                      "violations": {
                        "amount": "amount is a required field."
                      }
                    }
                  },
                  "Invalid amount": {
                    "value": {
                      "code": "WONP0001",
                      "message": "Payload is invalid. It must be a valid JSON.",
                      "violations": {
                        "amount": "A maximum of 20 digits, including two decimals, is allowed for the amount field."
                      }
                    }
                  },
                  "Invalid currency": {
                    "value": {
                      "code": "WONP0001",
                      "message": "Payload is invalid. It must be a valid JSON.",
                      "violations": {
                        "currency": "Currency is invalid. The field must have the valid ISO 4217 currency code."
                      }
                    }
                  },
                  "Tracking ID required": {
                    "value": {
                      "code": "WONP0001",
                      "message": "Payload is invalid. It must be a valid JSON.",
                      "violations": {
                        "tracking_id": "tracking_id is a required field."
                      }
                    }
                  },
                  "Original tracking ID required": {
                    "value": {
                      "code": "WONP0001",
                      "message": "Payload is invalid. It must be a valid JSON.",
                      "violations": {
                        "original_tracking_id": "original_tracking_id is a required field."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Access token is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404Transfers"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/409Transfers"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Unprocessable authentication method": {
                    "value": [
                      {
                        "code": "EPAE0004",
                        "message": "The method provided in the payload does not exist."
                      }
                    ]
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Platform authentication unexpected error": {
                    "value": [
                      {
                        "code": "EPAE0001",
                        "message": "Unexpected error while processing the call to the authentication system."
                      }
                    ]
                  },
                  "Platform authentication timeout error": {
                    "value": [
                      {
                        "code": "EPAE0002",
                        "message": "Timeout error while processing the call to the authentication system."
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```