#Wheaty
1 messages · Page 1 of 1 (latest)
I would suggest starting with our official Doc for Invoice and Subscription
https://stripe.com/docs/invoicing/overview
https://stripe.com/docs/billing/subscriptions/overview
Manually paid or not is decided by the collection_method : charge_automatically or send_invoice
it depend on how you created the subsciption. if you add the DefaultPaymenteMethodID while creating subscription so it will charge immediatley and payment is automatic.
but if you dont pass DefaultPaymenteMethodID instead you set CollectionMethod : "send_invoice" so it will wont charge auto instead it will send you invoice for each payment and you have to pay manually by any mean you want card,bank etc.
for the difference you can see in Billing->subscitption section the billing type is diferent for them . one of them is auto and second is "send" which is not auto
Thank you team
per https://stripe.com/docs/api/subscriptions/create#create_subscription-payment_behavior
I am setting payment_behavior=default_inomplete
Use default_incomplete to create Subscriptions with status=incomplete when the first invoice requires payment, otherwise start as active. Subscriptions transition to status=active when successfully confirming the payment intent on the first invoice.
"When successfully confirming the payment intent on the first invoice" - Assuming the customer has a default payment method for their account (not for said subscription, as it is newly created) - will the system attempt to auto-pay this payment intent, or will it require manual payment?
Yes it will try to use the Customer payment_settings.default_payment_method. Look at the definition here https://stripe.com/docs/api/subscriptions/object#subscription_object-default_payment_method
default_payment_method
ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over default_source. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default_source.
So I ideally want the functionality of both -
I'd like it to generate an invoice (not auto-charge), and await successful payment to activate the subscription.
If I were to set collection_method=send_invoice, that would await payment - however the side effect of this is for the subscription to automatically be marked as active.
payment_behavior=default_incomplete will await payment to activate the service, but will attempt to auto-charge the client, and cannot be used with send_invoice.
How do you recommend I accomplish this?
I appreciate your time.
I'd like it to generate an invoice (not auto-charge), and await successful payment to activate the subscription.
Is this for the first time, or you want this behavior for every billing cycle?
Initial subscription creation
How about creating a Subscription with collection_method = charge_automatically, payment_behavior = default_incomplete. Then after customer paid and it's active, you change it back to collection_method = send_invoice?
If I were to set payment_behavior=default_incomplete this would attempt to pay with Customer default payment method however, right?
(as there is no subscription default payment method)
Yes, if the customer doesn't have any then it will wait
No workaround from that though?
I'd ideally like this to work under all conditions
If payment_behavior=default_incomplete - it may attempt to charge customer account default payment method.
But if they already have a default payment method, why do you still want to wait for them to pay by themselve, instead of just let Stripe using it?
For the beginning of a new subscription, I'd like them to manually pay the first invoice.
So they are aware of entering into said "billing agreement"
When is the default payment method associated to the account instead of per subscription?
Perhaps I could just ensure it is never added to account?
Making sure the customer never has any payment method sounds like the ideal approach
When are payment methods added to the "customer account" default payment method?
As by default when paying an invoice subscription they are added to the subscription only, correct?
Is it added to the account for one-time invoices?
It won't add unless you specifically doing so
ie if you calling an Update Customer API specifically
Awesome, sounds like that will work then.
Thank you kindly for your time. 🙂
@eager relic
good luck!