#ehsan-ahmadi_docs
1 messages ¡ Page 1 of 1 (latest)
đ Welcome to your new thread!
â˛ď¸ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
âąď¸ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
đ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1496794677163065384
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
Could you please clarify how this rule actually works? Is the 30-day limit only enforced in live mode, or am I misreading the docs?
Correct, you are using a test only feature here (fund cash balance)
It's not a real bank transfer
So does that mean in live mode, if a bank transfer comes in with a reference number for an invoice that's more than 30 days overdue, the funds won't be applied to that invoice?
This is pretty confusing. Isn't test mode supposed to simulate real-world behavior? If the reconciliation rules don't apply the same way in the sandbox, how are we supposed to verify our integration handles the 30-day cutoff correctly before going live?
Taking a look at the example, not sure how this is supposed to work
I'd agree that this should mirror live mode behaviour
(still checking)
Thanks for looking into this. Actually, there are two places in the docs that explain the reconciliation rules for invoices and PaymentIntents:
https://docs.stripe.com/invoicing/bank-transfer#automatic-transfer-reconciliation
https://docs.stripe.com/payments/customer-balance/reconciliation?country=us#cash-automatic-reconciliation
For context: we use both (1) invoices with bank transfer and (2) standalone PaymentIntents with bank transfer for specific use cases outside the invoicing flow. So the reconciliation behavior for both matters to us.
Reading the docs together, I'd like to confirm the actual live mode behavior, because some parts seem contradictory or incomplete.
For invoices:
The Invoicing docs say:
"Stripe can only reconcile inbound bank transfers to open or past due invoices that are less than 30 days overdue."
This reads as a hard rule across the whole flow. But the "Oldest payable invoice" step is described as:
"Stripe progressively pays open invoices by date (finalized until the balance runs out)"
with no mention of the 30-day cutoff.
Questions:
- Does the 30-day overdue cutoff apply to every reconciliation step for invoices (reference match, exact amount, multi-invoice group, oldest payable)?
- Or does the "oldest payable" fallback pay invoices regardless of how overdue they are?
- If an invoice is 31+ days overdue, is it completely ignored by automatic reconciliation?
For standalone PaymentIntents (bank transfer):
The docs describe the matching logic but don't mention any time-based cutoff; only that the PaymentIntent must be "incomplete."
Questions:
- Is there any time-based cutoff for reconciling inbound transfers to incomplete PaymentIntents?
- If not, would a PaymentIntent created months ago, still in an incomplete state, still receive funds from a matching inbound transfer?
Getting these confirmed would really help us handle edge cases around overdue invoices and stale PaymentIntents correctly.
Does the 30-day overdue cutoff apply to every reconciliation step for invoices (reference match, exact amount, multi-invoice group, oldest payable)?
My understanding is yes, but looking at the code the confirm
If an invoice is 31+ days overdue, is it completely ignored by automatic reconciliation?
Again, not sure. The docs imply it should be yes, but clearly that was not the case in your example
Is there any time-based cutoff for reconciling inbound transfers to incomplete PaymentIntents?
Not that I'm aware of no. The docs are here (you were looking at invoicing specific reconciliation docs)
OK, so I think the reference matching bypasses the 30-day limit. That limit only applies to 'automatic' matching, by date/amount
So overall, this is expected. We should clarify the docs I agree
Cool. So, the sandbox is working correctly after all?
It seems that way yes. From what I understand of the code
Great. And one last question: for the payment intents, there are no time limitations, right?
No, as long as it's in payable state
Is there any way to extend the 30-day auto-reconciliation window for overdue invoices (specifically for cases where no reference code is provided in the transfer)? For example, a configurable setting, or something available on an enterprise/custom plan?