# Post payment (Pismo account ID) Enables clients to submit a payment to the Pismo platform. This operation supports posting debits and credits to an account and can also be used to transfer funds between accounts. For more information about payment operations, see [Payment overview](doc:payment-overview) and [Corporate Banking Launch Reference](doc:corporate-banking-launch-reference). NOTES: - This endpoint requires an account token, an access token encoded with a Pismo 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.
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.0.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 (Pismo account ID)", "description": "Payment endpoints" } ], "components": { "schemas": { "AccountID4": { "type": "integer", "format": "int64", "description": "Account ID generated by [Create account application](https://developers.pismo.io/pismo-docs/reference/post-acquisitions-v3-s2s-applications).
\n`minimum: 1`\n`maximum: 4294967295`\n", "example": 102701621 }, "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", "exclusiveMinimum": false, "minimum": 0, "maximum": 100000000000000000, "example": 1000.52 }, "BusinessDate": { "type": "string", "format": "date", "description": "Specifying a `business_date` value impacts the account balance history.
\nNotes:\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.
\n`minLength: 1`\n`maxLength: 30`\n", "example": "2023-04-27T12:01:24Z" }, "Force": { "type": "boolean", "description": "Whether a payment validation rule should be executed in a forced state (`true`) or not (`false`).
\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.
\nTo post a forced transfer, you must specify both `credit` and `debit`, and set `force_post` to `true`.
\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.
\nNOTE: 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.
\nNOTES:\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.\n", "example": { "my-id": 2932 } }, "Override": { "type": "boolean", "description": "Whether to override the validation rule in the payment process (`true`) or not (`false`).
\nAllowed for `ACCOUNT_STATUS` validation rule.\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.
\nNotes:\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" }, "PaymentV2Response": { "title": "PaymentV2Response", "type": "object", "properties": { "tracking_id": { "$ref": "#/components/schemas/TrackingID" }, "event_datetime": { "$ref": "#/components/schemas/EventDatetime" } } }, "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.
\nNOTES:\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` already exists in the system, 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.
\nAvailable validation rules:\n - `LEDGER`\n - `ACCOUNT_STATUS`\n", "additionalProperties": { "$ref": "#/components/schemas/ValidationRule" }, "example": { "ACCOUNT_STATUS": { "override": false }, "LEDGER": { "force": false } } }, "CoreAccountBasedCreditTransaction": { "type": "object", "description": "Credit transaction. A credit transaction requires a credit object that includes a valid credit `processing_code` and a destination `account_id`.
\nTo post a transfer, you must provide both credit and debit objects, with each representing the credit and debit legs of the operation respectively.\n", "properties": { "account_id": { "$ref": "#/components/schemas/AccountID4" }, "processing_code": { "$ref": "#/components/schemas/CreditProcessingCode" }, "soft_descriptor": { "$ref": "#/components/schemas/SoftDescriptorPayment" }, "metadata": { "$ref": "#/components/schemas/MetadataPayment" } }, "required": [ "account_id" ] }, "CoreAccountBasedDebitTransaction": { "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.
\nTo post a transfer, you must provide both `credit` and `debit` objects, with each 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": { "account_id": { "$ref": "#/components/schemas/AccountID4" }, "processing_code": { "$ref": "#/components/schemas/DebitProcessingCode" }, "earmark_id": { "$ref": "#/components/schemas/EarmarkIdWithdrawal" }, "soft_descriptor": { "$ref": "#/components/schemas/SoftDescriptorPayment" }, "metadata": { "$ref": "#/components/schemas/MetadataPayment" } }, "required": [ "account_id" ] }, "CoreAccountBasedPaymentV2Request": { "title": "CoreAccountBasedPaymentV2Request", "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/CoreAccountBasedCreditTransaction" }, "debit": { "$ref": "#/components/schemas/CoreAccountBasedDebitTransaction" }, "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" } } } }, "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": { "/cash-management/v2/payments": { "post": { "summary": "Post payment (Pismo account ID)", "description": "Enables clients to submit a payment to the Pismo platform. This operation supports posting debits and credits to an account and can also be used to transfer funds between accounts.\n\nFor more information 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\nNOTES:\n - This endpoint requires an account token, an access token encoded with a Pismo 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.
\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": "cash-management-v2-post-payments", "tags": [ "Payments (Pismo account ID)" ], "requestBody": { "description": "Request body", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoreAccountBasedPaymentV2Request" }, "examples": { "Credit transaction": { "value": { "credit": { "account_id": 102701621, "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": { "account_id": 102701621, "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": { "account_id": 102701621, "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": { "account_id": 102701621, "processing_code": "220035", "soft_descriptor": "Transfer - Credit leg", "metadata": { "invoice": 298 } }, "debit": { "account_id": 102701622, "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": { "account_id": 102701621, "processing_code": "220035" }, "debit": { "account_id": 102701622, "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": { "account_id": 102701621, "processing_code": "220035", "soft_descriptor": "Force transfer - Credit leg", "metadata": { "invoice": 298 } }, "debit": { "account_id": 102701622, "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": { "account_id": 102701621, "processing_code": "220035" }, "debit": { "account_id": 102701622, "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 } }, "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" } }, "Account ID required": { "value": { "code": "WPMT0018", "message": "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" } }, "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}" } }, "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" } }, "Backdating not permitted": { "value": { "code": "WEAM0029", "message": "Earmark not permitted on a backdating operation" } }, "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: " } }, "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" } }, "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" } }, "Validation rules conflict": { "description": "This error occurs when validation rules conflict with internal accounts program", "value": { "code": "WPMT0032", "message": "Validation rules conflict with internal accounts program" } }, "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" } } } } } }, "500": { "$ref": "#/components/responses/500InternalServer" } } } } } } ```