OVERFUNDED and UNDERFUNDED Payments

With bank transfer-based payment methods (Ping Deposit), the system cannot enforce the exact amount a customer transfers. The customer may send too little or too much, resulting in a funding deviation status.

Status Definitions

StatusMeaning
UNDERFUNDEDTotal received funds are less than the expected payment amount
OVERFUNDEDTotal received funds are more than the expected payment amount
FUNDEDExact amount received, but payment was created with complete_when_funded: false

The status is determined by comparing the cumulative sum of all received deposits against the payment's total_amount. Multiple deposits can arrive for a single payment — each one triggers a status recalculation.

Status Flow

PENDING
  |
  +-- partial amount received ----------> UNDERFUNDED
  |                                          |
  |                                          +-- more funds received (still short) --> UNDERFUNDED
  |                                          +-- exact remaining received -----------> COMPLETED (or FUNDED)
  |                                          +-- excess received --------------------> OVERFUNDED
  |
  +-- exact amount received -------------> COMPLETED  (complete_when_funded: true)
  |                                        FUNDED     (complete_when_funded: false)
  |
  +-- excess amount received ------------> OVERFUNDED

Multi-Deposit Behavior

A single payment can receive multiple bank transfers. Each incoming transfer is matched to the payment via its reference, and the total received funds accumulate across all transfers. For example:

  • Payment amount: 1000 SEK
  • First transfer arrives: 600 SEK → status becomes UNDERFUNDED
  • Second transfer arrives: 400 SEK → status becomes COMPLETED (cumulative total: 1000 SEK)

Each deposit triggers a status callback, giving you real-time visibility into how much has been received.

Recommendation: Do Not Reconcile UNDERFUNDED Payments Immediately

When a payment becomes UNDERFUNDED, it is often because the customer has made a partial transfer and a second transfer is on its way. We strongly recommend waiting before reconciling an UNDERFUNDED payment.

Instead:

  • Monitor incoming status callbacks for further deposits
  • Set a reasonable waiting window (e.g., a couple of business days) before deciding to reconcile
  • Consider reaching out to the customer to confirm whether additional transfers are expected

If the full amount eventually arrives, the payment may complete automatically without any manual intervention — depending on how complete_when_funded is configured.