# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Manage negative balance Platforms may experience scenarios that cause accounts to go into a negative balance (such as chargebacks, refunds or returns). ## Account setup - Funding account: Set up by J.P. Morgan implementation team. Pre-funded by the platform to offset negative balances within the platform’s program. - Offset accounts (Processing offset / Client offset): Set up by J.P. Morgan implementation team. Aligned to platform’s processing account and all user LIMITED_DDA accounts to offset any negative balances within the platform’s account structure. ## Notifications - ACCOUNT_OVERDRAWN: Notification sent when an account exceeds its negative balance limit. - THRESHOLD_LIMIT: Notification sent when program-level or account-level thresholds are approached or breached. To learn more, see [Notifications](/docs/embedded-finance-solutions/embedded-payments/capabilities/notification-subscriptions/index). ## Limits - Program-level limits: Define the maximum cumulative negative balance for the program across all platform processing and client accounts. - Platforms receive an initial webhook alert when approaching the maximum limit. - A secondary notification is sent when the maximum limit is breached. - Notifications are also sent when negative balances are restored to pre-determined levels. - Account-level limits: Define the maximum negative balance each individual processing or client account can reach before transactions are rejected. - Immediate response is provided when a debit transaction surpasses account-level limits. - Platforms are expected to remediate negative balances before further processing direct debits. - Ongoing operations: Automatic money movements occur at the end of each day, depending on daily changes in aggregate negative balances. - Platforms are notified of these movements via API integration. - On request, platforms can receive an outstanding balance report listing accounts in negative balance and duration, providing treasury teams with visibility. ## Automated fund movements At the end of New York branch close (5:00 p.m. ET), the aggregate negative balances in across LIMITED_DDA accounts and processing accounts are automatically managed by pulling funds from the pre-funded funding account into the offset accounts to cover any shortfalls. Money movement scenarios: - Funding account to offset account: At branch close, funds move from the funding account to the offset account to cover any negative balances. - Offset account to funding account: If you top up your processing or LIMITED_DDA accounts to resolve negative balances and no other changes occur before branch close, the system automatically moves funds from the offset account back into the funding account. ## Search fund movements by ID You can review these transactions by searching for the transaction ID by calling `GET /transactions`. Below are examples of movements between the funding and offset accounts. Funding to offset movement: ```json { "id": "V2V_PROC_OFFSET_001", "transactionReferenceId": "v2v_proc_offset_ref001", "type": "TRANSFER", "status": "COMPLETED", "requestedExecutionDate": "2026-05-21", "valueDate": "2026-05-21", "amount": "1000.00", "currency": "USD", "debtor": { "clientId": "0001007621", "partyDetails": { "name": "EP Processing Account" }, "account": { "type": "REGISTERED_ACCOUNT", "registeredAccount": { "id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4", "number": "...7001", "ledgerBalance": "49000.00", "postingVersion": 16 } } }, "creditor": { "clientId": "0001007621", "partyDetails": { "name": "EP Client Offset Account" }, "account": { "type": "REGISTERED_ACCOUNT", "registeredAccount": { "id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5", "number": "...7002", "ledgerBalance": "1000.00", "postingVersion": 3 } } } } ``` Offset to funding movement: ```json { "id": "V2V_OFFSET_PROC_001", "transactionReferenceId": "v2v_offset_proc_ref001", "type": "TRANSFER", "status": "COMPLETED", "requestedExecutionDate": "2026-05-21", "valueDate": "2026-05-21", "amount": "1000.00", "currency": "USD", "debtor": { "clientId": "0001007621", "partyDetails": { "name": "EP Client Offset Account" }, "account": { "type": "REGISTERED_ACCOUNT", "registeredAccount": { "id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5", "number": "...7002", "ledgerBalance": "0.00", "postingVersion": 4 } } }, "creditor": { "clientId": "0001007621", "partyDetails": { "name": "EP Processing Account" }, "account": { "type": "REGISTERED_ACCOUNT", "registeredAccount": { "id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4", "number": "...7001", "ledgerBalance": "50000.00", "postingVersion": 17 } } } } ```