Account PND — Post No Debit
Overview​
These commands place or remove a Post No Debit (PND) restriction on a deposit account in core banking.
While PND is active, the account cannot be debited; credits are still processed normally.
The core banking provider (BankOne, BankLingo, etc.) is resolved automatically from the account number prefix using the tenant's routing rules — no provider field is required in the request.
DepositManagement.LockAccount
ActivatePndOnAccountBpmCommand​
Places a PND restriction on an account.
Request​
{
"cmd": "ActivatePndOnAccountBpmCommand",
"data": {
"accountNumber": "0123456789",
"reason": "Suspicious transaction pattern — under investigation"
}
}
Request Fields​
| Field | Type | Required | Description |
|---|---|---|---|
accountNumber | string | Yes | The account number to restrict |
reason | string | Yes | Reason for placing PND — stored in core banking and audit log |
Response​
{
"isSuccessful": true,
"statusCode": "00",
"message": "Account '0123456789' has been placed on PND. No debit transactions will be allowed.",
"data": {
"accountNumber": "0123456789",
"isOnPND": true,
"reason": "Suspicious transaction pattern — under investigation",
"referenceId": "A3F9D2B1C4E7",
"route": "EmpireTrust"
}
}
ReleasePndFromAccountBpmCommand​
Removes an existing PND restriction and restores normal debit access.
Request​
{
"cmd": "ReleasePndFromAccountBpmCommand",
"data": {
"accountNumber": "0123456789",
"reason": "Investigation concluded — no fraud found"
}
}
Request Fields​
| Field | Type | Required | Description |
|---|---|---|---|
accountNumber | string | Yes | The account number to unblock |
reason | string | No | Reason for releasing PND (defaults to "PND released.") |
Response​
{
"isSuccessful": true,
"statusCode": "00",
"message": "PND restriction on account '0123456789' has been lifted.",
"data": {
"accountNumber": "0123456789",
"isOnPND": false,
"reason": "Investigation concluded — no fraud found",
"referenceId": "B7E2A1D3F509",
"route": "EmpireTrust"
}
}
How Provider Routing Works​
The handler calls ICoreBankingRepositoryWrapper.GetProvider(accountNumber) which matches the account prefix against the tenant's routing configuration and returns the appropriate ICoreBankingInterface implementation (BankOne, BankLingo, etc.). No provider code needs to be passed in the request.