Zero Amount Charges

1,722 views
Skip to first unread message

Andrei

unread,
Aug 3, 2015, 8:05:49 PM8/3/15
to Stripe API Discussion
Hi,

We're employing Stripe Charges to manage ecom on our platform and have run into an issue. For promotional reasons some customers offer 100% off coupons to their users, thus rendering the total purchase amount zero. As we understand, charges less than $0.50 are rejected, thus we can't create a charge to note the purchase. As we pull our data from Stripe for analytics / reporting we'd like a way to note these 'free' purchases in the same system. We're considering using invoices, but are interested to hear if anyone has run into this issue and has a simpler/better solution (one that ideally employs charges).

Thanks!

Jim Danz

unread,
Aug 3, 2015, 9:21:29 PM8/3/15
to api-d...@lists.stripe.com
Hi Andrei,

Invoices would be my recommended solution. You can create an invoice
item for the amount that you want, then immediately create an invoice
and request payment of that invoice, which will generate a charge
unless the amount is below the minimum. It is a few different API
calls to make, but it captures the semantics that you're looking for.

This has the added benefit of making the flow work even for a customer
that has no credit card attached. Even without a credit attached,
attempting to "pay" a $0 invoice on a customer will still succeed.

It isn't possible to capture these relaxed constraints using Charges
themselves, because a Charge always represents an actual (attempt to)
shell out to the card networks.

Cheers,
JIm
> --
> You received this message because you are subscribed to the Google Groups
> "Stripe API Discussion" group.
> To post to this group, send email to api-d...@lists.stripe.com.
> Visit this group at
> http://groups.google.com/a/lists.stripe.com/group/api-discuss/.
>
> To unsubscribe from this group and stop receiving emails from it, send an
> email to api-discuss...@lists.stripe.com.

Matthew Arkin

unread,
Aug 3, 2015, 11:14:17 PM8/3/15
to Jake K.
I'm going to disagree with Jim here.

The added annoyances of invoices, to me, doesn't seem worth it. For instance, if the charge doesn't go through you have to remember to delete the invoice so it doesn't automatically retry. Also if you're doing subscriptions, you'd risk accidentally adding a proration line item to a single charge.

I'd just use Stripe charges for everything > $.50 and anything else just create a charge in your own database but set your stripe charge id column to `null` for that charge. In this scenario, you'd end up using your own database for analytics as opposed to Stripe. I also prefer this because you can do much more complicated queries on your own dataset than Stripe allows you to do over the API.

Jim Danz

unread,
Aug 4, 2015, 12:23:15 AM8/4/15
to api-d...@lists.stripe.com
Thanks Matt -- definitely a reasonable analysis.

For what it's worth, if you're not using subscriptions and prorations
won't be an issue, you could set your Retry settings to "Stop trying
to collect payment" after the first failure at
https://dashboard.stripe.com/account/recurring to get around the try
issue. Agreed though that that's getting into the territory of
"workarounds."

It's definitely valuable to see where our abstractions are less than
ideal for capturing what you're trying to do, so thanks for raising
this, and sorry that we don't have a less hacky solution to offer at
present.

Cheers,
Jim
Reply all
Reply to author
Forward
0 new messages