Bug Reports
Open

Invoice stays unpaid after a later payment attempt on the same invoice succeeds

Summary

When a subscription renewal fails and the customer retries, every attempt in that billing cycle shares the same invoice. If a later attempt succeeds, the invoice is not marked paid. It stays in an unpaid state, so merchants see a leftover unpaid invoice for a cycle that was in fact collected.

No duplicate invoice is created and the customer is not double charged. Only the invoice status is wrong.

Impact

Reported by Waveloop (Eran Kutner). Their finance view treats the unpaid invoice as an open debt against the customer, which creates duplicate revenue recognition and manual reconciliation every time a renewal fails and recovers. They report it happening consistently, not as a one-off.

Reproduction

  1. Let a subscription renewal fail (card declined).
  2. Have the customer retry and complete the payment.
  3. Observe the invoice for that cycle. It remains unpaid despite the successful charge.

Live example

Customer cus_0Nl4kJCXRTzPcpCerC1IP, subscription sub_0Nl4ketDQq7KlC9N0OYe1, billing cycle 18 Oct 2026. All three attempts share invoice inv_0Nq07l7H7jQenUO7d7ahA:

Time (UTC)

Payment ID

Status

10:55

pay_0Nq07o8F4maPJUBjvCz1C

failed, CARD_DECLINED

13:09

pay_0Nq0XIgatqLcCLq7qntGp

requires_payment_method

13:39

pay_0Nq0cx9GOTIsqP4ZaMTu6

succeeded, 32084 ILS

32084 ILS was collected once, at 13:39, against inv_0Nq07l7H7jQenUO7d7ahA. That invoice is still unpaid.

The same pattern appears on this subscription's two earlier cycles:

  • 17 Sep, invoice inv_0NnpCl0sTcRtsowJHm5Hs: pay_0NnpClRus8mkBkRJEoQbk failed, pay_0NnrQ0phqzx48XUGXppq9 succeeded 31544 ILS
  • 17 Aug, invoice inv_0NlZrlP9r4knGEJlnHR8Z: pay_0NlZroPAsQZYLbNRCLCTV failed, pay_0Nlc57CR32GvEysaCZGME succeeded 30342 ILS

Expected behaviour

Once any payment attempt against an invoice succeeds, that invoice should be marked paid.

Actual behaviour

The invoice remains unpaid, apparently tracking the status of the first failed attempt rather than the successful one.

0 Comments

Sign in to comment

No comments yet. Be the first to share your thoughts!