#ethan_best-practices
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/1386739995158515732
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hello there
You are correct -- manual capture isn't supported for Invoicing.
Can you tell me more about what you are trying to do here overall?
The goal is to implement auth/capture so that we can just authorize funds, and capture a day later as to avoid other problems we have faced (not related to Stripe) when charging and capturing funds right away. We currently utilize the Invoices, so we essentially, auth/capture immediately when someone pays. Is there anyway to delay actually capturing funds via Invoices at all? I see auto_advance as well, is it possible to then delay the collection of the Invoice until a day or so later?
The only way to do this would be to collect the PaymentMethod up front, not using an Invoice.
It sounds like you are relying on the Invoice for collecting the PaymentMethod here?
What do you mean by the Invoice collecting the PaymentMethod? Maybe I'm unclear on how the PaymentMethods work with Invoicing, could you please explain?
We should already have a payment method that we pass into the Invoice creation
You charge an already-collected PaymentMethod?
Okay
So in that case you can indeed just wait until whenever you want to charge the Invoice
And yes, auto_advance controls when the Invoice will actually finalize/charge.
So here you could wait a day and then actually charge the Invoice if that's what you would like to do.
I'm trying to understand what auto_advance does here, so would we want that to true and wait to finalize our invoice, or control our Invoice with auto_advance set to false?
You most likely want to set it false. Then you can finalize the Invoice using https://docs.stripe.com/api/invoices/finalize?api-version=2025-05-28.basil and pay (when ready) using https://docs.stripe.com/api/invoices/pay?api-version=2025-05-28.basil. Or you can finalize/pay in one request via the /pay endpoint.
Would recommend testing this out!
Got it thank you. One question on this then, when you say 'pay when ready', are you saying send an invoice to the customer to pay or pay the Invoice with the PaymentMethod we already have? I've glanced over the docs on send_invoice but don't intend to be reaching out to the customer again, just want to capture the funds a day later.
Nope you wouldn't send it.
You just use charge_automatically but if auto_advance is set to false then you control when that charging actually occurs.
Got it, thanks! This has been helpful! One last thing to clarify then, we cannot go through PaymentIntents to auth and delay the capture of funds as seen in the 'hold payment' docs, but we can implement similar behavior with control over when the actual Invoice gets finalized?
Correct. It would be similar in that you capture when you want to, but yeah there wouldn't be a guaranteed auth up front here.
Yes I see. Ok thank you very much!