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

# Force operation

Force a credit or debit operation in the specified account using the `account_id`, the `processing_code`, and the `amount` provided.
This operation directly impacts the balance but does not perform any of the validations that are done in the [Transfer funds](ref:post-payments-v1-payments) endpoint, such as validating the account status, account balance, and flex controls.

This endpoint generates an [Authorization created](https://developers.pismo.io/events/docs/authorization-authorization-event-1) event with authorization > type "FORCE".

For additional information, see the [Force operation](doc:force-operation) guide. 

## Forced credit example

Assuming that  `processing_code` "090907" is defined as credit type, the following payload executes a forced credit operation:

```json  
{
  "amount": 12.34,
  "account_id": 2417,
  "processing_code": "090907",
  "descriptor": "Cashback credit",
  "original_authorization": {
    "id": 123,
    "type": "PLATFORM"
  },
  "metadata": {
    "my-custom-key": "my-custom-info"
  }
}
```

# 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": "Force operations",
      "description": "APIs to manage force operations."
    }
  ],
  "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"
      },
      "Authorization": {
        "properties": {
          "authorization_id": {
            "type": "integer",
            "format": "int64",
            "description": "Generated authorization ID.",
            "example": 16397984
          },
          "response_code": {
            "type": "string",
            "description": "Operation status code.",
            "example": "00"
          },
          "amount": {
            "description": "Credited or debited amount.",
            "type": "number",
            "format": "float",
            "example": 12.13
          },
          "date": {
            "type": "string",
            "description": "Authorization date/time in UTC-0 (RFC3339) format.",
            "format": "date-time",
            "example": "2020-01-02T15:14:00.218Z"
          }
        },
        "description": "Authorization object.",
        "title": "Authorization"
      },
      "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"
      },
      "ForceRequest": {
        "title": "ForceRequest",
        "type": "object",
        "description": "Request object for `POST v1/payments/force` (Force payment).",
        "properties": {
          "tracking_id": {
            "type": "string",
            "minLength": 36,
            "maxLength": 50,
            "description": "Unique tracking ID of the forced operation. If you don't provide one, the Pismo platform generates it randomly.",
            "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}$"
          },
          "account_id": {
            "type": "integer",
            "description": "Unique identifier of an account in the Pismo platform.",
            "example": 101
          },
          "amount": {
            "description": "Credit or debit amount",
            "type": "number",
            "format": "float",
            "example": 12.13
          },
          "processing_code": {
            "description": "Unique 6-character processing code that identifies the credit or debit operation.",
            "type": "string",
            "example": "004000",
            "pattern": "^[0-9]{6}$"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "descriptor": {
            "type": "string",
            "description": "Optional text that describes the created operation. The platform supports only letters and numbers in this field and removes any special characters or emojis.",
            "example": "Single credit adjustment"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "original_authorization": {
            "type": "object",
            "description": "This optional field identifies the original authorization to be forced. \nWhen this object is provided, both the `id` and `type` fields need to be filled.\n",
            "properties": {
              "id": {
                "type": "number",
                "description": "Original authorization ID in the Pismo plataform.",
                "example": 101
              },
              "type": {
                "type": "string",
                "description": "Original authorization type.",
                "example": "NETWORK",
                "enum": [
                  "NETWORK",
                  "PLATFORM"
                ]
              }
            },
            "required": [
              "id",
              "type"
            ]
          },
          "payment_datetime": {
            "type": "string",
            "format": "date-time",
            "description": "Value date (effective date) of the payment in UTC-0 (RFC3339) format. \nPayments can be backdated but future dates are not allowed.\nexample: '2020-01-02T15:14:00.218Z'    \n"
          }
        }
      },
      "ForceResponse": {
        "properties": {
          "authorization_id": {
            "description": "Generated authorization ID",
            "type": "integer",
            "format": "int64",
            "example": 15301234
          },
          "event_date": {
            "description": "Date and time of the authorization, in the UTC-0 (RFC3339) format.",
            "type": "string",
            "format": "date-time",
            "example": "2020-01-02T15:14:00.218Z"
          },
          "tracking_id": {
            "description": "Unique tracking ID of the forced operation. If you don't provide one, the Pismo platform generates it randomly.",
            "type": "string",
            "minLength": 36,
            "maxLength": 50,
            "example": "82766158-514c-42f0-87e2-1bb3250c6dee"
          }
        },
        "description": "Successful response object from `v1/payments/force` (Force operation).",
        "title": "ForceResponse"
      },
      "TrackingIdAlreadyInUseResponse": {
        "properties": {
          "error_code": {
            "type": "string",
            "description": "Error code.",
            "example": "WP2P0010",
            "deprecated": true
          },
          "code": {
            "type": "string",
            "description": "Error code.",
            "example": "WP2P0010"
          },
          "message": {
            "type": "string",
            "description": "Error description.",
            "example": "Tracking ID already in use"
          },
          "authorizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Authorization"
            }
          }
        },
        "title": "TrackingIdAlreadyInUseResponse",
        "description": "Tracking ID already in use error object."
      },
      "Currency": {
        "type": "string",
        "description": "ISO-4217 alphabetic or numeric (3 characters) operation currency code. For example, either BRL or 986 for Brazilian real.",
        "example": "BRL"
      },
      "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/v1/payments/force": {
      "post": {
        "operationId": "post-payments-v1-force",
        "summary": "Force operation",
        "description": "Force a credit or debit operation in the specified account using the `account_id`, the `processing_code`, and the `amount` provided.\nThis operation directly impacts the balance but does not perform any of the validations that are done in the [Transfer funds](https://developers.pismo.io/pismo-docs/reference/post-payments-v1-payments) endpoint, such as validating the account status, account balance, and flex controls.\n\nThis endpoint generates an [Authorization created](https://developers.pismo.io/events/docs/authorization-authorization-event-1) event with authorization > type \"FORCE\".\n\nFor additional information, see the [Force operation](https://developers.pismo.io/pismo-docs/docs/force-operation) guide. \n\n## Forced credit example\n\nAssuming that  `processing_code` \"090907\" is defined as credit type, the following payload executes a forced credit operation:\n\n```json  \n{\n  \"amount\": 12.34,\n  \"account_id\": 2417,\n  \"processing_code\": \"090907\",\n  \"descriptor\": \"Cashback credit\",\n  \"original_authorization\": {\n    \"id\": 123,\n    \"type\": \"PLATFORM\"\n  },\n  \"metadata\": {\n    \"my-custom-key\": \"my-custom-info\"\n  }\n}\n```",
        "tags": [
          "Force operations"
        ],
        "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 identifier. If none is provided, a random one is generated.",
            "schema": {
              "type": "string",
              "example": "c737895c-8159-4c0c-a92a-a4f8600bff37"
            }
          },
          {
            "in": "header",
            "name": "x-account-id",
            "description": "Optional account identifier.",
            "schema": {
              "type": "number",
              "example": 1
            }
          },
          {
            "in": "header",
            "name": "x-skip-timeline",
            "description": "If set to `true`, this will prevent the generation of timeline events in the customer timeline.",
            "schema": {
              "type": "string",
              "example": "true"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForceResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "Invalid payload": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Invalid payload"
                    }
                  },
                  "Invalid amount": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "The amount must have a maximum of two decimal places."
                    }
                  },
                  "Negative amount": {
                    "value": {
                      "error_code": "WP2P1005",
                      "code": "WP2P1005",
                      "message": "The amount cannot be negative or zero."
                    }
                  },
                  "Cannot perform calculations": {
                    "value": {
                      "error_code": "WRAT00001",
                      "code": "WRAT00001",
                      "message": "Cannot perform calculations"
                    }
                  },
                  "Program not found": {
                    "value": {
                      "error_code": "WP2P0022",
                      "code": "WP2P0022",
                      "message": "Program not found"
                    }
                  },
                  "Account not found": {
                    "value": {
                      "error_code": "WP2P0023",
                      "code": "WP2P0023",
                      "message": "Account not found"
                    }
                  },
                  "Invalid currency": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "The currency sent is invalid."
                    }
                  },
                  "AccountID is doesn't match the original authorization": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Account ID in this request doesn't match the account ID of the original authorization."
                    }
                  },
                  "Original authorization id was not provided": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Original authorization id was not provided."
                    }
                  },
                  "Original authorization type was not provided": {
                    "value": {
                      "error_code": "WP2P0000",
                      "code": "WP2P0000",
                      "message": "Original authorization type was not provided."
                    }
                  },
                  "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."
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingIdAlreadyInUseResponse"
                }
              }
            }
          },
          "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"
                    }
                  },
                  "Error on request calculations": {
                    "value": {
                      "error_code": "ERAT00001",
                      "code": "ERAT00001",
                      "message": "Error on request calculations"
                    }
                  },
                  "Marshalling Error": {
                    "value": {
                      "error_code": "ERAT00002",
                      "code": "ERAT00002",
                      "message": "Failed when transforming data"
                    }
                  },
                  "Internal Error": {
                    "value": {
                      "error_code": "ERAT00003",
                      "code": "ERAT00003",
                      "message": "An Internal Error has occurred. Please try again"
                    }
                  },
                  "Accounts api with troubles": {
                    "value": {
                      "error_code": "EP2P0012",
                      "code": "EP2P0012",
                      "message": "Accounts API with troubles"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
````