---
updatedAt: 2026-05-01T13:14:07.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. Append .md to any documentation page URL to get its markdown version.

# Post payment

Enable users to submit a payment to the Pismo platform. It supports posting debits and credits to an account, as well as facilitating fund transfers between accounts.

For details about payment operations, see [Payment overview](doc:payment-overview) and [Corporate Banking Launch Reference](doc:corporate-banking-launch-reference).

<b>NOTES</b>:
  - This endpoint requires an account token - an access token encoded with an external account ID. Tokens can expire quickly, which can result in a `401 Unauthorized` message.
  - To get the correct reason IDs, refer to the [List account status reasons](https://developers.pismo.io/pismo-docs/reference/get-accounts-v1-accounts-status-reasons) endpoint.<br>

Each payment operation created generates the following events:
- [Platform authorization created](https://developers.pismo.io/events/docs/platform-authorization-platform-authorization-1)
- [Account balance changed](https://developers.pismo.io/events/docs/account-balances-balance-change-1)
- [Account balance changed (Availables)](https://developers.pismo.io/events/docs/availables-change-available-1)
- [Accounting entry created](https://developers.pismo.io/events/docs/accounting-entry-creation-1)
- If flex controls are configured, a [Flex control evaluated](https://developers.pismo.io/events/docs/rules-evaluation-requested-1) event is triggered.

See [Data and reporting](doc:data-reporting-overview) for more information on events and setting up event notifications.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Banking - Transaction banking",
    "version": "0.9.0",
    "description": "Transaction banking API",
    "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"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Payments",
      "description": "Payment endpoints supporting external accounts"
    }
  ],
  "components": {
    "schemas": {
      "Amount": {
        "type": "object",
        "description": "Amount",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/AmountValue"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "required": [
          "value"
        ]
      },
      "AmountValue": {
        "type": "number",
        "format": "float",
        "description": "Amount value",
        "minimum": 0,
        "maximum": 100000000000000000,
        "example": 1000.52
      },
      "BusinessDate": {
        "type": "string",
        "format": "date",
        "description": "Specifying a `business_date` value impacts the account balance history.<br>\n<b>Notes</b>:\n  - The business date is in ISO 8601 format.\n  - The business date allows users to designate the balance history cycle in which a payment is posted.\n  - You can specify a `business_date` within the current working day or up to one working day before or after.\n",
        "example": "2023-03-09"
      },
      "ChannelCode": {
        "description": "Alphanumeric channel code identifier",
        "type": "string",
        "minLength": 1,
        "maxLength": 20,
        "pattern": "^[a-zA-Z0-9]+$",
        "example": "GDP"
      },
      "CreditProcessingCode": {
        "type": "string",
        "description": "Processing code for posting credit transactions. The code must have a credit balance impact. You can retrieve a list of the organization processing codes using [List processing codes](https://developers.pismo.io/pismo-docs/reference/get-processing-code-by-tenant).",
        "maxLength": 6,
        "example": "220035"
      },
      "Currency": {
        "type": "string",
        "description": "3-letter code in ISO 4217-compliant format for the currency used in the transaction.",
        "maxLength": 3,
        "minLength": 3,
        "example": "USD"
      },
      "DebitProcessingCode": {
        "type": "string",
        "description": "Processing code to be used for posting the debit transaction. List the organization processing codes in [List processing codes](https://developers.pismo.io/pismo-docs/reference/get-processing-code-by-tenant) endpoint.",
        "maxLength": 6,
        "example": "220037"
      },
      "EarmarkIdWithdrawal": {
        "type": "string",
        "description": "ID of the earmark from which the amount is withdrawn. The earmark ID is generated by the [Create Earmark](https://developers.pismo.io/pismo-docs/reference/post-corporate-v2-earmarks) endpoint.",
        "maxLength": 60,
        "minLength": 1,
        "example": "dadaab22-6e28-4746-8440-0caa030f0f3f"
      },
      "ErrorCode": {
        "description": "Error code\n`minLength: 1`\n`maxLength: 12`\n",
        "type": "string",
        "minLength": 1,
        "maxLength": 12,
        "example": "WPMT0017"
      },
      "ErrorMessage": {
        "description": "Error message\n`minLength: 1`\n`maxLength: 1000`\n",
        "type": "string",
        "minLength": 1,
        "maxLength": 1000,
        "example": "Invalid JSON payload received: Error unmarshalling request"
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ErrorCode"
          },
          "message": {
            "$ref": "#/components/schemas/ErrorMessage"
          }
        }
      },
      "EventDatetime": {
        "type": "string",
        "format": "date-time",
        "minLength": 1,
        "maxLength": 30,
        "description": "Event date and time displayed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.<br>\n`minLength: 1`\n`maxLength: 30`\n",
        "example": "2023-04-27T12:01:24Z"
      },
      "ExternalAccountId2": {
        "type": "string",
        "description": "External ID of the account to which the transaction is posted.",
        "maxLength": 60,
        "minLength": 1,
        "example": "289",
        "pattern": "^[a-zA-Z0-9-]+$"
      },
      "Force": {
        "type": "boolean",
        "description": "Whether a payment validation rule should be executed in a forced state (`true`) or not (`false`).<br>\nAllowed for `LEDGER` validation rule.\n",
        "example": false
      },
      "ForcePostPayment": {
        "type": "boolean",
        "description": "If `true`, the transaction is executed regardless of the accounts balance or state.<br>\nTo post a forced transfer, you must specify both `credit` and `debit`, and set `force_post` to `true`.<br>\nReason-based force payments:\n  If the account has any reason-based force payment restrictions, and the operation violates any of those restrictions, it fails. The reasons that restrict force credit or debit operations are:\n    - `ALL_NO_FORCE_ALLOWED`: Debits and credits are permitted, but force operations are not allowed.\n    - `CREDIT_ONLY_NO_FORCE_DEBIT_ALLOWED`: Only credits and force credits are allowed.\n    - `FORCE_CREDIT_ONLY`: Debits, credits, and force debits are not allowed.\n    - `FORCE_DEBIT_ONLY`: Debits, credits, and force credits are not allowed.\n    - `DEBIT_ONLY_NO_FORCE_CREDIT_ALLOWED`: Only debits and force debits are allowed.\n    - `NONE_NO_FORCE_ALLOWED`: Debits, credits, force debits, and force credits are not allowed.<br>\n<b>NOTE</b>: Forced transfers from an earmark balance are not supported when `credit`, `debit`, or `earmark_id` are specified.\n",
        "default": false,
        "example": false
      },
      "InstantClearing": {
        "type": "boolean",
        "description": "Whether the funds are available when the payment is posted (`true`) or not (`false`).",
        "example": false
      },
      "MetadataPayment": {
        "type": "object",
        "description": "Key-value pairs containing data intended for storage in the Pismo system.<br>\n<b>NOTES</b>:\n- The `metadata` field includes a `corporate_metadata` object with the following fields:\n    - `credit_external_account_id`: Included in the `corporate_metadata` field when it's provided in the credit leg.\n    - `debit_external_account_id`: Included in the `corporate_metadata` field when it's provided in the debit leg.\n    - `earmark_id`: Included in the `corporate_metadata` field when it's provided in the debit leg.\n- The `corporate_metadata` attribute must be an object. A type mismatch results in an error as mapped in the responses section.\n- To be able to send different `metadata` information for each payment leg in transfer operations, the `metadata` can be included in the primary or leg field. A conflict between the primary and a leg field results in an error as mapped in the responses section.<br>\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).\n",
        "example": {
          "my-id": 2932
        }
      },
      "Override": {
        "type": "boolean",
        "description": "Whether to override the validation rule in the payment process (`true`) or not (`false`).<br>\nAllowed for `ACCOUNT_STATUS`, `FLEX_CONTROLS`, and `RATES` validation rules.\n",
        "example": false
      },
      "PaymentDatetime": {
        "type": "string",
        "format": "date-time",
        "description": "Date and time of the payment. Specifying a `payment_datetime` value impacts the account balance history.<br>\n<b>Notes</b>:\n  - The payment datetime is in ISO 8601 format.\n  - You can backdate payments a maximum of 390 calendar days. You can postdate payments a maximum of 10 calendar days.\n",
        "example": "2023-03-10T19:05:56.743Z"
      },
      "PaymentV2Request": {
        "title": "PaymentV2Request",
        "type": "object",
        "required": [
          "amount",
          "tracking_id"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "tracking_id": {
            "$ref": "#/components/schemas/TrackingID"
          },
          "soft_descriptor": {
            "$ref": "#/components/schemas/SoftDescriptorPayment"
          },
          "credit": {
            "$ref": "#/components/schemas/RequiredCreditTransaction"
          },
          "debit": {
            "$ref": "#/components/schemas/RequiredDebitTransaction"
          },
          "metadata": {
            "$ref": "#/components/schemas/MetadataPayment"
          },
          "skip_account_date_validation": {
            "$ref": "#/components/schemas/SkipAccountDateValidation"
          },
          "force_post": {
            "$ref": "#/components/schemas/ForcePostPayment"
          },
          "validation_rules": {
            "$ref": "#/components/schemas/ValidationRules"
          },
          "payment_datetime": {
            "$ref": "#/components/schemas/PaymentDatetime"
          },
          "business_date": {
            "$ref": "#/components/schemas/BusinessDate"
          },
          "channel": {
            "$ref": "#/components/schemas/ChannelCode"
          },
          "instant_clearing": {
            "$ref": "#/components/schemas/InstantClearing"
          }
        }
      },
      "PaymentV2Response": {
        "title": "PaymentV2Response",
        "type": "object",
        "properties": {
          "tracking_id": {
            "$ref": "#/components/schemas/TrackingID"
          },
          "event_datetime": {
            "$ref": "#/components/schemas/EventDatetime"
          }
        }
      },
      "RequiredCreditTransaction": {
        "type": "object",
        "description": "Credit transaction. To post a credit, you must provide a `credit` object with a valid credit processing code (`processing_code`) and destination (`external_account_id`).<br>\nTo post a transfer, you must provide both credit and debit objects, representing the credit and debit legs of the operation, respectively.\n",
        "properties": {
          "external_account_id": {
            "$ref": "#/components/schemas/ExternalAccountId2"
          },
          "processing_code": {
            "$ref": "#/components/schemas/CreditProcessingCode"
          },
          "soft_descriptor": {
            "$ref": "#/components/schemas/SoftDescriptorPayment"
          },
          "metadata": {
            "$ref": "#/components/schemas/MetadataPayment"
          }
        },
        "required": [
          "external_account_id"
        ]
      },
      "RequiredDebitTransaction": {
        "type": "object",
        "description": "Debit transaction. To post a debit you must provide a `debit` object. If you provide an `earmark_id` value inside the `debit` object, the payment amount is withdrawn directly from the earmark balance. The earmark ID is generated by the [Create earmark](https://developers.pismo.io/pismo-docs/reference/post-corporate-v2-earmarks) endpoint.<br>\nTo post a transfer, you must provide both `credit` and `debit` objects, representing the credit and debit legs of the operation, respectively. If you provide an `earmark_id` value inside the `debit` object, the transferred amount is withdrawn directly from the earmark balance.\n",
        "properties": {
          "external_account_id": {
            "$ref": "#/components/schemas/ExternalAccountId2"
          },
          "processing_code": {
            "$ref": "#/components/schemas/DebitProcessingCode"
          },
          "earmark_id": {
            "$ref": "#/components/schemas/EarmarkIdWithdrawal"
          },
          "soft_descriptor": {
            "$ref": "#/components/schemas/SoftDescriptorPayment"
          },
          "metadata": {
            "$ref": "#/components/schemas/MetadataPayment"
          }
        },
        "required": [
          "external_account_id"
        ]
      },
      "SkipAccountDateValidation": {
        "type": "boolean",
        "description": "If `FALSE`, the `payment_datetime` is validated against the account creation date and time. If `TRUE`, the validation is skipped.",
        "default": false,
        "example": false
      },
      "SoftDescriptorPayment": {
        "type": "string",
        "description": "Brief description that helps to identify a particular transaction on the bank statement.<br>\n<b>NOTES</b>:\n- To be able to send different `soft_descriptor` information for each payment leg in transfer operations, the `soft_descriptor` can be included in the primary or leg field. A conflict between the primary and a leg field results in an error as mapped in the responses section.\n",
        "maxLength": 100,
        "minLength": 0,
        "example": "ACME Inc. - Invoice 2938"
      },
      "TrackingID": {
        "type": "string",
        "description": "A unique payment tracking number provided by the client. If an existing `tracking_id` is found on the Pismo platform, the API returns a `409` error.\n\nThis field is:\n  * Unique within the organization\n  * Immutable: It can't be updated\n  * Not recyclable: You can't reuse a `tracking_id`\n",
        "minLength": 1,
        "maxLength": 43,
        "example": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244"
      },
      "ValidationRule": {
        "title": "ValidationRule",
        "type": "object",
        "properties": {
          "override": {
            "$ref": "#/components/schemas/Override"
          },
          "force": {
            "$ref": "#/components/schemas/Force"
          }
        }
      },
      "ValidationRules": {
        "title": "ValidationRules",
        "type": "object",
        "description": "Rules that determine which validations are executed during the payment process.<br>\nAvailable validation rules:\n  - `LEDGER`\n  - `ACCOUNT_STATUS`\n  - `FLEX_CONTROLS`\n  - `RATES`<br>\n\n`force` is only supported for `LEDGER`. `override` is supported for `ACCOUNT_STATUS`, `FLEX_CONTROLS`, and `RATES`.\n",
        "additionalProperties": {
          "$ref": "#/components/schemas/ValidationRule"
        },
        "example": {
          "ACCOUNT_STATUS": {
            "override": false
          },
          "LEDGER": {
            "force": false
          },
          "FLEX_CONTROLS": {
            "override": true
          },
          "RATES": {
            "override": true
          }
        }
      }
    },
    "responses": {
      "403Forbidden": {
        "description": "The request has been lost"
      },
      "500InternalServer": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "Generic internal error": {
                "value": {
                  "code": "ECMN9999",
                  "message": "Internal error"
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "paths": {
    "/corporate/v2/payments": {
      "post": {
        "summary": "Post payment",
        "description": "Enable users to submit a payment to the Pismo platform. It supports posting debits and credits to an account, as well as facilitating fund transfers between accounts.\n\nFor details about payment operations, see [Payment overview](https://developers.pismo.io/pismo-docs/docs/payment-overview) and [Corporate Banking Launch Reference](https://developers.pismo.io/pismo-docs/docs/corporate-banking-launch-reference).\n\n<b>NOTES</b>:\n  - This endpoint requires an account token - an access token encoded with an external account ID. Tokens can expire quickly, which can result in a `401 Unauthorized` message.\n  - To get the correct reason IDs, refer to the [List account status reasons](https://developers.pismo.io/pismo-docs/reference/get-accounts-v1-accounts-status-reasons) endpoint.<br>\n\nEach payment operation created generates the following events:\n- [Platform authorization created](https://developers.pismo.io/events/docs/platform-authorization-platform-authorization-1)\n- [Account balance changed](https://developers.pismo.io/events/docs/account-balances-balance-change-1)\n- [Account balance changed (Availables)](https://developers.pismo.io/events/docs/availables-change-available-1)\n- [Accounting entry created](https://developers.pismo.io/events/docs/accounting-entry-creation-1)\n- If flex controls are configured, a [Flex control evaluated](https://developers.pismo.io/events/docs/rules-evaluation-requested-1) event is triggered.\n\nSee [Data and reporting](https://developers.pismo.io/pismo-docs/docs/data-reporting-overview) for more information on events and setting up event notifications.",
        "parameters": [],
        "operationId": "corporate-v2-post-payments",
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "description": "Request body",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentV2Request"
              },
              "examples": {
                "Credit transaction": {
                  "value": {
                    "credit": {
                      "external_account_id": "289",
                      "processing_code": "220035"
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "soft_descriptor": "Debit operation",
                    "channel": "GCE",
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244"
                  }
                },
                "Debit transaction": {
                  "value": {
                    "debit": {
                      "external_account_id": "289",
                      "processing_code": "220037"
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "soft_descriptor": "Debit operation",
                    "channel": "GCE",
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244"
                  }
                },
                "Debit transaction with earmark": {
                  "value": {
                    "debit": {
                      "external_account_id": "289",
                      "processing_code": "219251",
                      "earmark_id": "632b378a-2248-11ee-be56-0242ac120002"
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "soft_descriptor": "Debit operation from earmark balance",
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244"
                  }
                },
                "Transfer transaction": {
                  "value": {
                    "credit": {
                      "external_account_id": "289",
                      "processing_code": "220035",
                      "soft_descriptor": "Transfer - Credit leg",
                      "metadata": {
                        "invoice": 298
                      }
                    },
                    "debit": {
                      "external_account_id": "289",
                      "processing_code": "220037",
                      "soft_descriptor": "Transfer - Debit leg",
                      "metadata": {
                        "invoice": 892
                      }
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244"
                  }
                },
                "Transfer from earmark balance transaction": {
                  "value": {
                    "credit": {
                      "external_account_id": "289",
                      "processing_code": "220035"
                    },
                    "debit": {
                      "external_account_id": "289",
                      "processing_code": "220037",
                      "earmark_id": "632b378a-2248-11ee-be56-0242ac120002"
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "soft_descriptor": "Transfer operation from earmark balance",
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244",
                    "metadata": {
                      "invoice": 298
                    }
                  }
                },
                "Force transfer transaction": {
                  "value": {
                    "credit": {
                      "external_account_id": "289",
                      "processing_code": "220035",
                      "soft_descriptor": "Force transfer - Credit leg",
                      "metadata": {
                        "invoice": 298
                      }
                    },
                    "debit": {
                      "external_account_id": "289",
                      "processing_code": "220037",
                      "soft_descriptor": "Force transfer - Debit leg",
                      "metadata": {
                        "invoice": 892
                      }
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244",
                    "force_post": true
                  }
                },
                "Transfer transaction with validation rules": {
                  "value": {
                    "credit": {
                      "external_account_id": "289",
                      "processing_code": "220035"
                    },
                    "debit": {
                      "external_account_id": "289",
                      "processing_code": "220037"
                    },
                    "amount": {
                      "currency": "USD",
                      "value": 100
                    },
                    "soft_descriptor": "Transfer operation with validation rules",
                    "tracking_id": "0a50c88a-ade8-4bcc-a639-9a0b0f11e244",
                    "validation_rules": {
                      "ACCOUNT_STATUS": {
                        "override": true
                      },
                      "LEDGER": {
                        "force": true
                      },
                      "FLEX_CONTROLS": {
                        "override": false
                      },
                      "RATES": {
                        "override": false
                      }
                    },
                    "metadata": {
                      "invoice": 298
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentV2Response"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Operations blocked for account": {
                    "description": "This error occurs when there's an operations block for this account",
                    "value": {
                      "code": "WOBK0007",
                      "message": "Operations blocked for account"
                    }
                  },
                  "Invalid JSON payload": {
                    "value": {
                      "code": "WPMT0017",
                      "message": "Invalid JSON payload received: Error unmarshalling request"
                    }
                  },
                  "Corporate account not found": {
                    "value": {
                      "code": "WPMT0011",
                      "message": "Corporate account not found"
                    }
                  },
                  "Account has not finished onboarding": {
                    "value": {
                      "code": "WPMT0053",
                      "message": "Account has not finished onboarding"
                    }
                  },
                  "Processing code exceed size": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "processing_code must be a maximum of 6 characters in length"
                    }
                  },
                  "External Account ID exceed size": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "external_account_id must be a maximum of 60 characters in length"
                    }
                  },
                  "External Account ID required": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "external_account_id is a required field"
                    }
                  },
                  "Amount value less than zero": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "value must be 0 or greater"
                    }
                  },
                  "Amount value exceeded": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "amount must be 100,000,000,000,000,000 or less"
                    }
                  },
                  "Amount value required": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "value is a required field"
                    }
                  },
                  "Tracking ID exceed size": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "tracking_id must be a maximum of 43 characters in length"
                    }
                  },
                  "External account ID contains characters not permitted": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "external_account_id contains characters not permitted: [characters]"
                    }
                  },
                  "Primary and leg metadata conflict": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "Cannot use primary and payment legs metadata fields together"
                    }
                  },
                  "Primary and leg soft descriptor conflict": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "Cannot use primary and payment legs soft_descriptor fields together"
                    }
                  },
                  "Channel contains character not permitted": {
                    "summary": "channel contains character not permitted",
                    "value": {
                      "code": "WPMT0018",
                      "message": "channel contains character not permitted"
                    }
                  },
                  "Channel exceed size": {
                    "summary": "channel exceeds maximum length",
                    "value": {
                      "code": "WPMT0018",
                      "message": "channel must be a maximum of 20 characters in length"
                    }
                  },
                  "Validation rules with force_post not allowed": {
                    "value": {
                      "code": "WPMT0029",
                      "message": "Payment request with conflicting force parameters"
                    }
                  },
                  "Invalid validation rule": {
                    "value": {
                      "code": "WPMT0030",
                      "message": "Invalid validation rule {validation rule}"
                    }
                  },
                  "Invalid params for validation rule": {
                    "value": {
                      "code": "WPMT0031",
                      "message": "Invalid params for validation rule {validation rule}"
                    }
                  },
                  "Flex controls denied": {
                    "value": {
                      "code": "WPMT0062",
                      "message": "Authorization failed flex control evaluation"
                    }
                  },
                  "Rates enforcement fee deduction model not supported": {
                    "value": {
                      "code": "WPMT0063",
                      "message": "Rates enforcement is not supported for operations with a fee deduction model (deductFromTransactionValue)"
                    }
                  },
                  "Unrecognized account ID type": {
                    "value": {
                      "code": "WCAC0010",
                      "message": "Token contains an unrecognized account ID type"
                    }
                  },
                  "Payment date before account creation date": {
                    "value": {
                      "code": "WPMT0001",
                      "message": "The payment date cannot be earlier than the account creation date"
                    }
                  },
                  "Payment date before account migration date": {
                    "value": {
                      "code": "WPMT0061",
                      "message": "The payment date cannot be earlier than the account migration date"
                    }
                  },
                  "Invalid currency": {
                    "description": "The currency must be specified in the ISO 4217 3-letter code",
                    "value": {
                      "code": "WPMT0015",
                      "message": "Invalid currency"
                    }
                  },
                  "Currency mismatch": {
                    "description": "At the moment, the platform can only accept the currency that is configured for the account",
                    "value": {
                      "code": "WPMT0016",
                      "message": "Cannot perform conversion between account currency and provided currency"
                    }
                  },
                  "Holiday error": {
                    "value": {
                      "code": "WPMT0003",
                      "message": "Cannot post transaction on holidays"
                    }
                  },
                  "Weekend error": {
                    "value": {
                      "code": "WPMT0004",
                      "message": "Cannot post transaction on weekends"
                    }
                  },
                  "Invalid debit processing code": {
                    "value": {
                      "code": "WPMT0005",
                      "message": "Invalid debit processing code"
                    }
                  },
                  "Invalid credit processing code": {
                    "value": {
                      "code": "WPMT0006",
                      "message": "Invalid credit processing code"
                    }
                  },
                  "Invalid account status": {
                    "description": "This error occurs when the account is in an invalid state, an example is when the account cannot be credited or debited.",
                    "value": {
                      "code": "WPMT0009",
                      "message": "Invalid account status"
                    }
                  },
                  "Insufficient funds": {
                    "value": {
                      "code": "WPMT0010",
                      "message": "Insufficient funds"
                    }
                  },
                  "Invalid debit earmark processing code": {
                    "value": {
                      "code": "WPMT0021",
                      "message": "Invalid debit earmark processing code"
                    }
                  },
                  "Earmark not active": {
                    "description": "This error occurs when the client sends a debit with an `earmark_id` where its status is not ACTIVE",
                    "value": {
                      "code": "WEAM0008",
                      "message": "Earmark ID `earmark_id` not active"
                    }
                  },
                  "Earmark insufficient balance": {
                    "description": "This error occurs when the client sends a debit with an `earmark_id` where its balance is not sufficient for the given amount",
                    "value": {
                      "code": "WEAM0006",
                      "message": "Earmark does not have sufficient balance to complete this operation. Balance: `earmark_balance`"
                    }
                  },
                  "Payment business date before earmark creation": {
                    "description": "This error occurs when the payment `business_date` is before the earmark creation date",
                    "value": {
                      "code": "WPMT0050",
                      "message": "Payment business date cannot be earlier than the earmark creation date"
                    }
                  },
                  "Orgs operation not found or parameterized": {
                    "value": {
                      "code": "WEAM0017",
                      "message": "Orgs operations not found or parameters are incorrect or invalid"
                    }
                  },
                  "Invalid account program type": {
                    "value": {
                      "code": "WEAM0019",
                      "message": "The account's program type is invalid"
                    }
                  },
                  "Target account cannot be credited": {
                    "description": "This error occurs when the target (credit) account cannot be credited.",
                    "value": {
                      "code": "WPMT0022",
                      "message": "The account cannot be credited, credit earmark function is not active"
                    }
                  },
                  "Sender account cannot be debited": {
                    "description": "This error occurs when the sender account cannot be debited.",
                    "value": {
                      "code": "WPMT0023",
                      "message": "The account cannot be debited. Debit earmark function is not active"
                    }
                  },
                  "Tracking ID required": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "tracking_id is a required field"
                    }
                  },
                  "Currency required": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "currency is a required field"
                    }
                  },
                  "Force operation not allowed": {
                    "value": {
                      "code": "WPMT0024",
                      "message": "Force operation not allowed by reason: {reason_description}"
                    }
                  },
                  "Debit not permitted": {
                    "value": {
                      "code": "WPMT0025",
                      "message": "Debit not permitted on a closed account"
                    }
                  },
                  "Credit not permitted": {
                    "value": {
                      "code": "WPMT0026",
                      "message": "Credit not permitted on a closed account"
                    }
                  },
                  "Amount has invalid decimal places for currency": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "The number of decimal places is not compatible with the specified currency"
                    }
                  },
                  "Corporate Metadata must be an object": {
                    "value": {
                      "code": "WCMN0002",
                      "message": "corporate_metadata is reserved and must be an object"
                    }
                  },
                  "Invalid business date for the current business day cycle": {
                    "value": {
                      "code": "WPMT0028",
                      "message": "Invalid business date for the current business day cycle"
                    }
                  },
                  "Invalid business date format": {
                    "value": {
                      "code": "WPMT0018",
                      "message": "business_date 24-05-2024 should be formatted as yyyy-mm-dd and be a valid date"
                    }
                  },
                  "Misconfigured administrative division": {
                    "value": {
                      "code": "WPMT0045",
                      "message": "Administrative division is misconfigured"
                    }
                  },
                  "Transfer must be sent by debit account": {
                    "description": "This error occurs when the transfer request originates from a credit leg account",
                    "value": {
                      "code": "WPMT0049",
                      "message": "Transfer operations must be sent by the debit account"
                    }
                  },
                  "Future dated earmark payments are not allowed": {
                    "description": "This error occurs when the earment payment is a future-dated earmark payment",
                    "value": {
                      "code": "WPMT0036",
                      "message": "Future dated earmark payments are not allowed"
                    }
                  },
                  "Future dated payments only supports default debit processing code": {
                    "description": "This error occurs when the processing code for a future-dated payment is not a debit processing code",
                    "value": {
                      "code": "WPMT0005",
                      "message": "Future dated payments only supports default debit processing code"
                    }
                  },
                  "Future dated payments only supports default credit processing code": {
                    "description": "This error occurs when the processing code for a future-dated payment is not a credit processing code",
                    "value": {
                      "code": "WPMT0006",
                      "message": "Future dated payments only supports default credit processing code"
                    }
                  },
                  "Back business dating disabled": {
                    "description": "This error occurs when the back business payment feature is disabled through [Past business date toggle](https://developers.pismo.io/pismo-docs/reference/put-back-business-toggle) endpoint",
                    "value": {
                      "code": "WPMT0044",
                      "message": "Back business dating is disabled"
                    }
                  },
                  "Operation not allowed by reason": {
                    "description": "This error occurs when the operation you performed is not allowed by the account status reason provided.",
                    "value": {
                      "code": "WPMT0051",
                      "message": "Operation not allowed by reason: <reason>"
                    }
                  },
                  "Future payment datetime above limit": {
                    "value": {
                      "code": "WPMT0035",
                      "message": "Future dated payment datetime must be before date limit"
                    }
                  },
                  "Back payment datetime above limit": {
                    "value": {
                      "code": "WPMT0046",
                      "message": "The maximum retroactive payment datetime allowed is <days_limit> days"
                    }
                  },
                  "Cannot post back value-dated for division": {
                    "value": {
                      "code": "WPMT0054",
                      "message": "Cannot post back value-dated transaction for this division"
                    }
                  },
                  "Cannot post future value-dated for division": {
                    "value": {
                      "code": "WPMT0055",
                      "message": "Cannot post future value-dated transaction for this division"
                    }
                  },
                  "Invalid account currency code": {
                    "value": {
                      "code": "WPMT0056",
                      "message": "Invalid account currency code: 999"
                    }
                  },
                  "Channel not found": {
                    "summary": "Channel not found",
                    "value": {
                      "code": "WPMT0058",
                      "message": "Channel not found"
                    }
                  },
                  "Invalid processing code": {
                    "description": "This error occurs when the processing code is invalid",
                    "value": {
                      "code": "WPMT0008",
                      "message": "Invalid processing code"
                    }
                  },
                  "Account closed error": {
                    "description": "This error occurs when the account is closed",
                    "value": {
                      "code": "WPMT0014",
                      "message": "Account is closed"
                    }
                  },
                  "Same account credit debit": {
                    "description": "This error occurs when you attempt to use the same account for both credit and debit in a transfer",
                    "value": {
                      "code": "WPMT0019",
                      "message": "Cannot use same account for credit and debit"
                    }
                  },
                  "Invalid header account": {
                    "description": "This error occurs when the x-account-id header is invalid or malformed",
                    "value": {
                      "code": "WCAC0002",
                      "message": "Invalid header account"
                    }
                  },
                  "Account not found": {
                    "description": "This error occurs when the account is not found",
                    "value": {
                      "code": "WCAC0012",
                      "message": "Account not found"
                    }
                  },
                  "Invalid time zone": {
                    "value": {
                      "code": "WPMT0002",
                      "message": "Invalid timezone {invalid}"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Unauthorized account": {
                    "value": {
                      "code": "WCAC0001",
                      "message": "Account not authorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Earmark not found": {
                    "description": "This error occurs when the client sends a debit with an `earmark_id` that does not exist",
                    "value": {
                      "code": "WEAM0007",
                      "message": "Earmark with ID `earmark_id` not found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Tracking ID already in use": {
                    "description": "This error occurs when the client sends a duplicate tracking ID for the payment",
                    "value": {
                      "code": "WPMT0007",
                      "message": "tracking_id is already in use",
                      "data": {
                        "tracking_id": "10027506-171f-b1e1-8412-67f5f5145a3b",
                        "event_datetime": "2025-02-05T21:46:06Z"
                      }
                    }
                  },
                  "Tracking ID already in use by another account": {
                    "description": "This error occurs when the client sends a duplicate tracking ID that is either already in use by another account, or by the same account with a different earmark ID than the one used in the original payment.",
                    "value": {
                      "code": "WPMT0052",
                      "message": "tracking_id is already in use"
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "Transaction using this tracking ID in progress": {
                    "description": "This error occurs when multiple payment requests with the same `tracking_id` are made simultaneously",
                    "value": {
                      "code": "WPMT0047",
                      "message": "transaction using this tracking_id is in progress, please try again later"
                    }
                  },
                  "Earmark locked by a concurrent operation": {
                    "value": {
                      "code": "WEAM0048",
                      "message": "Earmark locked by a concurrent operation"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          }
        }
      }
    }
  }
}
```