#thule_41493

1 messages ยท Page 1 of 1 (latest)

zenith swallowBOT
keen mesa
#

Unfortunately not. They can only be applied indicriminantly to future invoices

heady rivet
#

๐Ÿ˜ซ

#

Do you know if is there any way to charge the customer the amount that less than the invoice.total, without using the customer balance or discount?

keen mesa
#

charge the customer the amount that less than the invoice.total
Do you mean charge an amount less than the invoice total? If so, you can create a negative Invoice Item and add it to the invoice to decrease the total: https://stripe.com/docs/api/invoiceitems/create#create_invoiceitem-amount

heady rivet
#

But with this case, we cant do line item refund later on this invoice ๐Ÿ˜ฆ

keen mesa
#

I don't understand. Can you elaborate on what you're actually trying to do? What's the point of the refund?

heady rivet
#

I am hitting deadend in the scenario where the customer changes their tax exemption status before upgrade. Stripe update subscription API calculate refund amount wrongly when invoicing upgrade. To fix this, I need to create an invoice manually, calculate the refund amount, and only want to charge the customer only the difference amount. But I found out that after that, if I do refund, the some amount will go back to the customer balance instead of the customer's card

heady rivet
keen mesa
#

Why do you need to do the refund if you're calculating the exact amount that they need to be charged?

heady rivet
#

No, I mean when new action coming after invoicing.

#

Let me explain more in details

#

I have a taxable customer buy a sub with package A, he then wants to upgrade to package B and provide valid VAT when upgrading. So, I want to:

  • Create an invoice with package B, e.g, total $300
  • Calculate the prorated unused time of package A, e.g $ 100
  • And I want to charge the customer the different, $200
#

After the customer is upgraded, he may come back and want to get refund for 1 seat in package B, in this case, with negative line item invoice, I cant create invoice_line_item credit note for refunding 1 seat for the customer

keen mesa
#

Do you want to create a credit note for the refund for 1 seat? Or do you want to just reduce the price of the next invoice? Why not just do a partial refund to their payment method on file instead?

heady rivet
#

I want to create a credit note for refunding 1 seat

#

I want money sent to the customer's card

#

Wait, do you mean I can create a Refund with any amount I want, without depending on any invoice?

keen mesa
#

Okay, those are 2 different things. A credit note will not send money to the customer's card. In order to do that you need to create a partial refund by getting the Payment Intent ID from the Invoice and creating a refund for the amount you want to send to the customer's card

heady rivet
#

I currently create credit note with refund_amount, so Stripe auto create Refund object after the credit note is created

#

Even with creating a refund, from the above scenario for the upgrade invoice with balance applied, can I create a refund with $300, and Stripe sends $300 to the customer's card? Just do a quick reading, I dont see that it is doable

keen mesa
#

yup, that's doable as long as the amount of the original charge was $300 or more

heady rivet
#

So, for my case, it is not, since after applying balance, the charge is only $200.

#

And Stripe does not refund money for the credit balance

keen mesa
#

Yeah, you can only refund up to the original charge amount

heady rivet
#

So Stripe only allow to refund for any invoice is charged by Stripe, right? Let say, for a customer that pays the invoice using check, can I use Stripe to refund/send money to his new added card?

keen mesa
#

Correct

#

You cannot refund out-of-band payments, no

heady rivet
#

I see, thanks.

#

Oh, sorry, one more question. Let say I have an invoice $300, I create a credit note $100 on Stripe without refunding. Can I later go back and refund the money $300 from that invoice?

#

I can test it out myself on Dashboard, thanks

#

It seems this is possible