v1

latestOpenAPI 3.1.0Copyright Pismo2026-07-247702,7523.1 MB
Payments (Pismo account ID)

Post payment (Pismo account ID)

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 and Corporate Banking Launch Reference.

<b>NOTES</b>:

  • 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 endpoint.<br>

Each payment operation created generates the following events:

See Data and reporting for more information on events and setting up event notifications.

post/cash-management/v2/payments

Request body

amountnumber double required

Fee amount.

tracking_idstring required

Customer created tracking ID. Must consist of alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and colons (:), with a length from 1 to 128. The Pismo platform uses this field to implement idempotency and prevent duplicates.

soft_descriptorstring

Brief description that helps to identify a particular transaction on the bank statement.<br> <b>NOTES</b>:

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

Key-value pairs containing data intended for storage in the Pismo system.<br> <b>NOTES</b>:

  • The metadata field includes a corporate_metadata object with the following fields:
    • credit_external_account_id: Included in the corporate_metadata field when it's provided in the credit leg.
    • debit_external_account_id: Included in the corporate_metadata field when it's provided in the debit leg.
    • earmark_id: Included in the corporate_metadata field when it's provided in the debit leg.
  • The corporate_metadata attribute must be an object. A type mismatch results in an error as mapped in the responses section.
  • 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>

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.

skip_account_date_validationboolean

If FALSE, the payment_datetime is validated against the account creation date and time. If TRUE, the validation is skipped.

force_postboolean

If true, the transaction is executed regardless of the accounts balance or state.<br> To post a forced transfer, you must specify both credit and debit, and set force_post to true.<br> Reason-based force payments: 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: - ALL_NO_FORCE_ALLOWED: Debits and credits are permitted, but force operations are not allowed. - CREDIT_ONLY_NO_FORCE_DEBIT_ALLOWED: Only credits and force credits are allowed. - FORCE_CREDIT_ONLY: Debits, credits, and force debits are not allowed. - FORCE_DEBIT_ONLY: Debits, credits, and force credits are not allowed. - DEBIT_ONLY_NO_FORCE_CREDIT_ALLOWED: Only debits and force debits are allowed. - NONE_NO_FORCE_ALLOWED: Debits, credits, force debits, and force credits are not allowed.<br> <b>NOTE</b>: Forced transfers from an earmark balance are not supported when credit, debit, or earmark_id are specified.

validation_rulesValidationRules

Rules that determine which validations are executed during the payment process.<br> Available validation rules:

  • LEDGER
  • ACCOUNT_STATUS
  • FLEX_CONTROLS
  • RATES<br>

force is only supported for LEDGER. override is supported for ACCOUNT_STATUS, FLEX_CONTROLS, and RATES.

payment_datetimestring date-time

Date and time of the payment. Specifying a payment_datetime value impacts the account balance history.<br> <b>Notes</b>:

  • The payment datetime is in ISO 8601 format.
  • You can backdate payments a maximum of 390 calendar days. You can postdate payments a maximum of 10 calendar days.
business_datestring date

Specifying a business_date value impacts the account balance history.<br> <b>Notes</b>:

  • The business date is in ISO 8601 format.
  • The business date allows users to designate the balance history cycle in which a payment is posted.
  • You can specify a business_date within the current working day or up to one working day before or after.
channelstring

Alphanumeric channel code identifier

instant_clearingboolean

Whether the funds are available when the payment is posted (true) or not (false).

Example request

{
  "amount": 215,
  "tracking_id": "3368328d-e4c6-4c75-99a9-9d59f3501d8c",
  "soft_descriptor": "ACME Inc. - Invoice 2938",
  "credit": {
    "account_id": 102701621,
    "processing_code": "220035",
    "soft_descriptor": "ACME Inc. - Invoice 2938",
    "metadata": {
      "my-id": 2932
    }
  },
  "debit": {
    "account_id": 102701621,
    "processing_code": "220037",
    "earmark_id": "dadaab22-6e28-4746-8440-0caa030f0f3f",
    "soft_descriptor": "ACME Inc. - Invoice 2938",
    "metadata": {
      "my-id": 2932
    }
  },
  "metadata": {
    "my-id": 2932
  },
  "validation_rules": {
    "ACCOUNT_STATUS": {
      "override": false
    },
    "LEDGER": {
      "force": false
    },
    "FLEX_CONTROLS": {
      "override": true
    },
    "RATES": {
      "override": true
    }
  },
  "payment_datetime": "2023-03-10T19:05:56.743Z",
  "business_date": "2023-03-09",
  "channel": "GDP"
}

Response

Created

tracking_idstring

Customer created tracking ID. Must consist of alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and colons (:), with a length from 1 to 128. The Pismo platform uses this field to implement idempotency and prevent duplicates.

event_datetimestring date-time

Event date and time displayed in ISO 8601 format.<br> minLength: 1 maxLength: 30

Example response

{
  "tracking_id": "3368328d-e4c6-4c75-99a9-9d59f3501d8c",
  "event_datetime": "2023-04-27T12:01:24Z"
}