v1

latestOpenAPI 3.1.0Copyright Pismo2026-07-247702,7523.1 MB
Payment methods

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 guide for additional information.

This endpoint generates a Platform authorization created event.

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

post/payment-methods/v2/transfers/cancel

Request body

tracking_idstring 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_idstring required

Tracking ID for the original operation.

amountnumber double

Fee amount.

metadatastring

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.

Example request

{
  "tracking_id": "3368328d-e4c6-4c75-99a9-9d59f3501d8c",
  "original_tracking_id": "249fbd1c-cfcd-48aa-8bcb-1ffe3a5f7978",
  "amount": 215,
  "metadata": "{ \"key\": \"value\"}"
}

Response

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

tracking_idstring

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.

response_codestring

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. If approve = false, you can use this value to respond to the network.

denial_codestring

Authorization denial code

Example response

{
  "tracking_id": "3368328d-e4c6-4c75-99a9-9d59f3501d8c",
  "response_code": "00",
  "denial_code": "DAL",
  "from": {
    "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."
      }
    ]
  },
  "to": {
    "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."
      }
    ]
  }
}