Check posting and settlement
Checks are classified as cash‑in instruments and follow a processing and settlement model that differs significantly from real‑time electronic payments. While checks are still commonly issued and accepted in many markets, their clearing relies on an external clearing house that intermediates communication between the receiving and issuing banks.
Pismo platform’s check‑handling and settlement capabilities combine API‑driven operations with file‑based bulk processing to support flexible and scalable check management. Individual check actions, such as posting, releasing, or canceling, are performed through dedicated APIs, while bulk operations are handled through a bulk‑settlement API endpoint that generates structured output files, and tracked through lifecycle events from creation to completion or failure. The same bulk-settlement endpoint also resolves all pending check operations for a specified division and date, providing consistent batch settlement that aligns with event‑based processing, generated file outputs, and overall operational workflows.
Check posting
You can submit check deposits using the Create check posting endpoint and determine whether the funds are made available immediately or at a future date. This behavior is controlled by the settlement_type field that includes the following options.
| Settlement type | Description |
|---|---|
BEGINNING | This settlement type makes funds available immediately upon deposit. It also supports check posting to allow part or all of the deposited amount to be placed on hold. |
END | Deposits made under this type do not include any operational holds. The entire value remains uncleared until the assigned settlement date, the funds become available only after the check is released, which requires a client request. |
Check settlement types
You may also define whether the check amount is deposited in full or only partially, with any remaining value placed on hold until its corresponding settlement date. You can specify check settlement types using the type field of the settlements object. Refer to Create check posting for details.
| Check settlement type | Description | Applicable check settlement type |
|---|---|---|
DEPOSIT | Specifies the amount to be deposited. This can be the full check value or a partial amount. | BEGINNING |
PENDING | Indicates the amount that is pending clearance and remains uncleared until its settlement date. | END |
HOLD | Represents the portion of the check amount placed on hold and kept unavailable until the scheduled settlement date. | BEGINNING |
About
settlements.type
- Only one
PENDINGis allowed when thesettlements.typeisEND- Up to three
HOLDare allowed when thesettlements.typeisBEGINNING- Only one
DEPOSITis allowed when thesettlements.typeisBEGINNING
Example 1: BEGINNING with check settlement type DEPOSIT
BEGINNING with check settlement type DEPOSITIn this example, the client selects BEGINNING as the settlement type, which makes the funds available immediately. The check settlement type DEPOSIT indicates that this is an upfront deposit, and the full amount of $2,000 becomes available right away.
{
"check_id": "c462b2f3-55cc-42b4-ae9a-7614df3e8e72",
"check_amount": {
"value": 2000,
"currency": "USD"
},
"description": "Check posting",
"settlement_type": "BEGINNING",
"business_date": "2025-01-04",
"settlements": [
{
"type": "DEPOSIT",
"tracking_id": "73cc7fa5-79f1-4b85-9e13-124cc58c651f",
"settlement_date": "2025-01-04",
"amount": 2000
}
]
}
Example 2: END with check settlement type PENDING
END with check settlement type PENDINGIn this case, the client selects END as the settlement type, meaning the funds remain unavailable until the scheduled settlement date—in this case, 2025-01-05. business_date indicates when the transaction is recorded in the account’s balance‑history timeline.
Note that business_date is an optional field. If you do not specify a value, the Pismo platform defaults to current_business_date.
{
"check_id": "c462b2f3-55cc-42b4-ae9a-7614df3e8e73",
"check_amount": {
"value": 2000,
"currency": "USD"
},
"description": "Check posting",
"settlement_type": "END",
"business_date": "2025-01-04",
"settlements": [
{
"type": "PENDING",
"tracking_id": "73cc7fa5-79f1-4b85-9e13-124cc58c651f",
"settlement_date": "2025-01-05",
"amount": 2000
}
]
}
Example 3: BEGINNING with a combination of DEPOSIT and HOLD
BEGINNING with a combination of DEPOSIT and HOLDIn this scenario, the client posts the check using the BEGINNING settlement type and chooses to make part of the amount available immediately while placing the remainder on hold. In the example, a DEPOSIT of 100 becomes available on 2025‑01‑05, and three separate HOLD operations release 800, 900, and 200 on 2025‑01‑10, 2025‑01‑20, and 2025‑01‑30, respectively.
{
"check_id": "c462b2f3-55cc-42b4-ae9a-7614df3e8e72",
"check_amount": {
"value": 2000,
"currency": "USD"
},
"description": "Check posting",
"settlement_type": "BEGINNING",
"business_date": "2025-01-04",
"settlements": [
{
"type": "DEPOSIT",
"tracking_id": "73cc7fa5-79f1-4b85-9e13-124cc58c651f",
"settlement_date": "2025-01-05",
"amount": 100
},
{
"type": "HOLD",
"tracking_id": "9d7c898e-dd57-4ab4-bfe3-23a48d56851f",
"settlement_date": "2025-01-10",
"amount": 800
},
{
"type": "HOLD",
"tracking_id": "953109dc-e943-454a-95b6-4b15d2c5b31d",
"settlement_date": "2025-01-20",
"amount": 900
},
{
"type": "HOLD",
"tracking_id": "cd593acd-a056-42a1-aec8-3ae14d427a4d",
"settlement_date": "2025-01-30",
"amount": 200
},
]
}
Check release
The check release feature is designed to clear or release uncleared checks. It supports both full and partial releases.
Validation rules
Checks must meet the following rules to be successfully settled. Refer to Release check for details.
| Validation item | Rule |
|---|---|
| Check existence | The check must already exist for the specified check_id. |
| Check status | The check status must be UNSETTLED, UNCLEARED, or PARTIALLY_SETTLED. |
| Settlement status | The settlement status must be UNSETTLED or RELEASE_FAILED. |
| Account reason and operation blocks | There are no account status blocks or reason blocks. Note that accounts must be free of account status restrictions and must not be associated with any operational block. |
| Tracking ID requires date | When a tracking_id is passed, the request must also include a settlement date. |
| No tracking ID on full release | Requests without a settlement date, which represent a full release, cannot include a tracking_id. If you do not provide a track_id, the Pismo platform generates one for you. |
| Tracking ID uniqueness | Your tracking_id must be unique and cannot already be in use. |
| Settlement date match | The settlement_date provided must match the settlement date of an existing settlement, and only the settlement associated with that exact date is released. |
Check release examples
Full check settlement
You specify a check_id in the request without a settlement_date, the check is released and the fund is moved from check_holds to available.
{
"check_id": "c462b2f3-55cc-42b4-ae9a-7614df3e8e72"
}
Specific check settlement
If you want to clear only one of the checks you previously submitted, include both settlement_date and tracking_id in your request so the transaction can be tracked. If you do not provide a tracking_id, the Pismo platform generates one automatically.
{
"check_id": "c462b2f3-55cc-42b4-ae9a-7614df3e8e72",
"tracking_id": "1624db2e-ee81-4294-bc5e-c753b2cc5eb9",
"settlement_date": "2025-06-30"
}
Check cancellation
To cancel checks, you pass a check_id in the Cancel check request.
Notes
- You can only cancel unsettled or partially settled checks.
- Checks that have been completely settled cannot be canceled.
Checks canceled successfully
This is a sample response payload indicating a successful check cancellation. Note that only check_id is returned.
{
"check_id": "c462b2f3-55cc-42b4-ae9a-7614df3e8e72"
}
Bank statements balance impacts
Three new balance types are introduced in relation to check posting.
| Balance type | When it impacts the balance | Description |
|---|---|---|
held_funds | When settlement_type is BEGINNING, and the settlements.type must be HOLD. | held_funds represents funds that are temporarily restricted due to regulatory or operational requirements. These funds are not available for transactions and reflect the total amount of balances that are earmarked or otherwise restricted. held_funds = earmarked_balance + held_checks_balance + restricted_funds |
uncleared_checks_balance | When settlement_type is END | The uncleared check amount remains pending until the specified settlement_date to clear. |
held_checks_balance | When settlement_type is BEGINNING | The held check amount increases immediately. If the check is flagged as HOLD in settlements.type, its amount is added to the held_checks_balance. |
Examples
Checks with settlement_type set to END
settlement_type set to ENDWhen you deposit a check of $1000 and specify settlement_type to END, the following balance impacts occur.
| Balance Type | Change |
|---|---|
uncleared_checks_balance | +$1000 |
uncleared_funds | +$1000 |
ledger_balance | +$1000 |
This occurs because the uncleared amount updates both uncleared_funds and ledger_balance. The ledger balance reflects all funds, both cleared and uncleared.
When the check is settled, the available, book, and value‑dated balances increase, while the uncleared funds and uncleared check balance decrease.
Checks with settlement_type set to BEGINNING
settlement_type set to BEGINNINGWhen you deposit a $1000 check with settlement_type = BEGINNING and one hold operation of $400 is applied, several balances update immediately. The held portion affects both ledger, held checks balance and held‑funds balances, while the deposit affects available and the total amount of the check impacts the book, value‑dated, and ledger balances. When the operation is later settled, the Pismo platform releases the held amount into the available balance and reverses the temporary hold entries, leaving other balances unchanged.
Before settlement (post checks with a partial hold)
| Balance type | Change |
|---|---|
available_balance | +$600 |
held_checks_balance | +$400 |
book_balance | +$1000 |
value_dated_balance | +$1000 |
ledger_balance | +$1000 |
held_funds | +$400 |
After settlement
| Balance type | Change |
|---|---|
available_balance | +$400 |
held_checks_balance | -$400 |
book_balance | no change |
value_dated_balance | no change |
ledger_balance | no change |
held_funds | -$400 |
For more details, refer to Account balance definitions for transaction banking.
Events
The following events are generated to indicate success/failure status of check settlements. For details, refer to the check posting API.
Updated 2 days ago