---
title: "Cancel cash-in or cash-out"
method: POST
path: "/payment-methods/v2/payments/cancel"
tags: ["Payment methods"]
---

# Cancel cash-in or cash-out

`POST /payment-methods/v2/payments/cancel`

Cancel an existing payment 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](https://developers.pismo.io/pismo-docs/docs/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.

## Request body

- PaymentsCancelRequest — Request payment cancellation.
  - `tracking_id` string, required — Customer created tracking ID. Must consist of alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and colons (:), with a length from 1 to 128. The Pismo platform uses this field to implement idempotency and prevent duplicates.
  - `original_tracking_id` string, required — Tracking ID for the original operation.
  - `amount` number, double — Fee amount.
  - `metadata` string — Any data object with key/value pairs. No limit on length. **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).

## Response `200`

Request was processed successfully, existing authorization with the corresponding `tracking_id` returned.

- PaymentsCancelResponse — Response for a cash-in or cash-out cancel operation.
  - `tracking_id` string, required — Customer created tracking ID. Must consist of alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and colons (:), with a length from 1 to 128. The Pismo platform uses this field to implement idempotency and prevent duplicates.
  - `account_id` integer — Account ID
  - `response_code` string, required — Network two-digit response code. For example: 00 = approve, 51 = insufficient funds, 57 = card not active, 96 = system failure, etc. For more information, see [Validation codes for authorization events](https://developers.pismo.io/pismo-docs/docs/validation-codes-for-authorization-events). If `approve` = `false`, you can use this value to respond to the network.
  - `denial_code` string — Authorization denial code
  - `validation_results` object[]
    - `name` string — Name of the evaluated rule.
    - `status` 'APPROVED' | 'REJECTED' | 'SKIPPED' — Identifies if the rule was approved, rejected, or skipped during the validation flow.
    - `reason` string — Status reason why the specific rule was approved, rejected, or skipped.
    - `description` string — Description of the validation result.
    - `additional_data` object — Additional data for the validation result. This varies from validation to validation, but every denied validation has the `denial_code` and `response_code` fields.

## Other responses

- `201` — Request was processed successfully, new authorization created.
- `400` — Bad request
- `404` — Not found
- `409` — Conflict
- `422` — Unprocessable request
- `500` — Internal server error

---

[API](https://skmtc.net/pismo/apis/platform-authentication.md) · [All operations](https://skmtc.net/pismo/apis/platform-authentication/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pismo/platform-authentication/revisions/935b62e16de4/schema)
