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

# Confirm pre-authorized transfer

Confirm a pre-authorized transfer operation. Use this endpoint only if the created transfer operation had the `pre_authorization` set to `true`. 

In the request, provide a new `tracking_id` for the confirmation operation and the `original_tracking_id` of the original transfer operation. If you don't provide the `amount`, the platform confirms the total original amount. You can also provide the `amount` to confirm a total, partial, or greater 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"
            }
          }
        }
      },
      "v2PaymentsResponse": {
        "type": "object",
        "description": "Response for a cash-in or cash-out operation.",
        "required": [
          "tracking_id",
          "amount",
          "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": "LE003",
          "validation_results": [
            {
              "name": "ACCOUNT",
              "status": "APPROVED",
              "reason": "ACCOUNT_FOUND",
              "description": "Account was found.",
              "additional_data": {
                "account_id": 2417
              }
            },
            {
              "name": "ACCEPTANCE",
              "status": "APPROVED",
              "reason": "ACCEPTANCE_FOUND",
              "description": "Payment methods acceptances were found."
            },
            {
              "name": "CONFIG",
              "status": "APPROVED",
              "reason": "CONFIG_FOUND",
              "description": "Payment methods configuration was found."
            },
            {
              "name": "PAYMENT_DATE",
              "status": "SKIPPED",
              "reason": "PAYMENT_DATE_SKIPPED",
              "description": "Payment date validation was skipped.",
              "additional_data": {
                "cause": "Payment date not present."
              }
            },
            {
              "name": "PLATFORM_AUTHENTICATION",
              "status": "APPROVED",
              "reason": "PLATFORM_AUTHENTICATION_SUCCESSFUL",
              "description": "Request was authenticated successfully."
            },
            {
              "name": "ACCOUNT_ID",
              "status": "APPROVED",
              "reason": "ACCOUNT_ID_PERMITTED",
              "description": "Account ID is permitted.",
              "additional_data": {
                "document_number": "60XXXXXXXXX19",
                "external_id": "",
                "name": "Marcelito"
              }
            },
            {
              "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.",
              "additional_data": {
                "available_credit_limit": 746847632710983.1,
                "available_savings_account_limit": 93477.42,
                "available_total_installment_credit": -226,
                "available_withdrawal_credit": -175,
                "total_credit_limit": 1000,
                "total_installment_credit_limit": 200,
                "withdrawal_credit_limit": 300
              }
            },
            {
              "name": "ACCOUNT_STATUS",
              "status": "APPROVED",
              "reason": "ACCOUNT_STATUS_PERMITTED",
              "description": "Account status is permitted."
            },
            {
              "name": "PROGRAM",
              "status": "APPROVED",
              "reason": "PROGRAM_FOUND",
              "description": "Program was found.",
              "additional_data": {
                "program_type": "PRE-PAGO"
              }
            },
            {
              "name": "BALANCES_CONFIG",
              "status": "APPROVED",
              "reason": "BALANCES_CONFIG_FOUND",
              "description": "Balances configuration was found.",
              "additional_data": {
                "amount": "contract_amount",
                "amount_consider": "principal_amount",
                "consider": [
                  "AvailableCreditLimit",
                  "OverLimit"
                ],
                "impact": [
                  "AvailableCreditLimit"
                ],
                "reset_limit": "last_installment"
              }
            },
            {
              "name": "CURRENCY",
              "status": "APPROVED",
              "reason": "CURRENCY_FOUND",
              "description": "Currency was found.",
              "additional_data": {
                "code": "BRL",
                "numeric_code": "986"
              }
            },
            {
              "name": "RATES",
              "status": "APPROVED",
              "reason": "RATES_APPROVED",
              "description": "Rates calculation was performed.",
              "additional_data": {
                "conversion": {
                  "conversion_rate": 0,
                  "destination": "986",
                  "exchange_rate": 1,
                  "origin": "986",
                  "spread": 0
                }
              }
            },
            {
              "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": "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": "AUTHORIZATION",
              "status": "APPROVED",
              "reason": "AUTHORIZATION_CREATED",
              "description": "Authorization was created successfully."
            }
          ]
        }
      },
      "PaymentsConfirmRequest": {
        "type": "object",
        "description": "Request payment confirmation.",
        "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"
          }
        }
      },
      "PaymentsConfirmResponse": {
        "type": "object"
      },
      "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."
            ]
          }
        }
      },
      "TransfersResponse": {
        "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/v2PaymentsResponse"
          },
          "to": {
            "$ref": "#/components/schemas/v2PaymentsResponse"
          }
        }
      },
      "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/confirm": {
      "post": {
        "summary": "Confirm pre-authorized transfer",
        "description": "Confirm a pre-authorized transfer operation. Use this endpoint only if the created transfer operation had the `pre_authorization` set to `true`. \n\nIn the request, provide a new `tracking_id` for the confirmation operation and the `original_tracking_id` of the original transfer operation. If you don't provide the `amount`, the platform confirms the total original amount. You can also provide the `amount` to confirm a total, partial, or greater 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-confirm",
        "tags": [
          "Payment methods"
        ],
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsConfirmRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request was processed successfully, existing authorization with the corresponding `tracking_id` returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransfersResponse"
                }
              }
            }
          },
          "202": {
            "description": "Request will be processed asynchronous",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsConfirmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "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."
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```