How to handle SaaS reseller that collects payment from customers? - stripe-payments

I develop and host a SaaS business that bills most customers directly, and that is a normal basic use-case with Stripe.
However, I also have a reseller that handles the billing relationship for those mutual customers. Since I host the SaaS service, all signups and subscription changes run through my software, and I'd like to use Stripe to track those customers, and create an invoice for each one of what the reseller owes us for them. Then I'd like to be able to charge the reseller's credit card once to pay for all those customers' invoices in one transaction. Is that possible?
Stripe Connect seems to serve the general need for handling these types of multi-party transactions. But I don't want to require the reseller to use Stripe to bill their own customers.
It seems maybe it could work if I created a single Stripe customer for the reseller, and then create a subscription for each of the reseller's customers under the reseller's customer resource. But it's not the canonical way of doing it, and I think I'd prefer a Stripe customer resource for each actual customer.
Although it might seem I could just collect payment from the reseller, and then mark all the customer invoices as paid offline but that seems it would double book revenue. I definitely don't want that!
I'm hoping someone might have a suggestion about the best way to accomplish this.
Thanks.

These types of questions are probably better suited for the Stripe support team, as they’ll be able to advise you on your business model and if there are any edge cases or unknowns you should be aware of: https://support.stripe.com/contact

Related

What security measurements we should take if we are storing banking details?

I am developing a mobile app, a market place buyers and sellers can meet.
When making payments, the buyer will have to enter his credit card information every time, because we are not saving them.
To get paid, sellers need to have their bank details stored with us (That's what we think). We are planning to use a payment gateway like Stripe or Braintree.
Now, we have 2 questions.
Instead of we storing the bank details, can we shift this responsibility to the payment gateway provider? So the information are with that service and not with us.
If it is mandatory for us to keep the bank details, what security measures we need to take?
I can't speak for Braintree, but Stripe can handle storing those. I'd suggest reaching out to them to tell them more about your use case and ask for more details. https://support.stripe.com/contact/email

Is it possible to query Stripe for a credit card belonging to any customer?

I have a subscription service for which free trials are allowed before signing up for the full payed service. I want to ask the customer to provide credit card details before gaining access to the free trial, to prevent abuse of the trial.
I'm using Stripe to handle payments so that I don't have to deal with storage of any sensitive payment information. This free trial scenario would seem to be very common, so I assumed there would be some way to query a card to make sure that it hasn't been used to sign up already. Just some API call that would accept the card number etc. and return a boolean.
I haven't seen anything like in the API docs. I know that fingerprints of cards are accessible after creating a card source, so is it advisable to store them myself and query them? Or have I missed something in the docs?
Just to be clear... I'm not looking to search a card for a particular customer. I know I can iterate over the cards to do that, but I'd have to iterate over the cards of every customer to accomplish what I want, which is not feasible.
Here you probaly want to contact the support team and suggest this as a new feature.
A possibility is the fingerprint you mention, in my opinion this would be the way i would do it too.
One single card should never be associated with one customer in a platform.
No, there is no way to check whether a credit card is used for another customer or not. And there shouldn't be. Because a customer has right to use his/her single credit card to maintain more than accounts.
You can easily integrate trial feature of a Subscription in Stripe which is best way to implement Trial feature using Stripe. If any customer's payment failed after trial expired then you will be notified by Stripe.
And Stripe and any other payment gateway is not advise to store any card info due to security issue.

Is there a way to move money between customers directly in Stripe?

Is it possible to move money between Stripe customers through ACH without having to use the merchant, myself, as an intermediary?
To facilitate payments through Stripe between users of product, you'd need to have them create Connect accounts. You can read about the process of making payouts in the stripe docs. It is currently impossible to transfer money between Customers.
It may be worth going through Stripe's list of prohibited businesses as "Money Transmitters" generally aren't allowed. Where here that is defined as transferring money without the sale of a good or service. If you want to know whether you'd run afoul of this, I recommend writing into Stripe's support.

How do I implement a customer wallet with Node.js and Stripe or Braintree

I'm building an uber-like app where there are customers, and drivers:
Customers need to have a wallet to which they can add money using credit cards
Drivers need to be paid when they complete a ride, and my platform receives a commission on each ride fare.
I experimented with Stripe, but they don't seem to support a customer wallet implementation out of the box. Neither does braintree. Am I missing something?
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact
support.
Happy to offer help!
Customers need to have a wallet to which they can add money using
credit cards
Braintree has a Vault in which you can allow customers to store payment methods, but there is no feature which will allow them to "add money". These payment methods are represented as payment method tokens which can be charged at any point.
Drivers need to be paid when they complete a ride, and my platform
receives a commission on each ride fare.
Braintree offers a Marketplace solution that allows you to split a payment to two parties; one being a sub-merchant (in your case, a driver), and a service see being sent to you, as the master merchant. You can read more about Marketplace at this link.
Feel free to reach out to support if you need further clarification!
Stripe doesn't support a 'wallet' style approach, but you can definitely use Connect to build this, though you'd then charge your customers at the time of purchase/use, rather than having them 'prefill' a wallet.
I'd suggest you reach out to Support if you have further questions on this one.

Can Stripe support Offline Payments?

I am using Stripe for online payments but also users can pay offline (cash or check). I want to centralize all my invoices/charges in one place (Stripe).
I am not sure if I can add offline payments (cash or check) to stripe or not. I guess I can if I created customers, invoices, charges with livemode=false for my live keys.
Is this feasible and will Stripe accept having some (customers, invoices and charges) with livemode=false and others with livemode=true?
If yes, should I fill fake credit card info or should I set it as nil?
Stripe does not allow you to create a Subscription on a Customer if you don't have a credit card setup. More accurately, it does not allow you to create a subscription if a customer does not have a way to pay for the next invoice. So for offline payments, you could update the 'account_balance' on the customer to have a negative value equal to the amount the customer wired (credits). Stripe will then allow you to create a subscription for the customer because it knows that the customer has enough account balance to pay for the next invoice. This post has more details.
We don't currently support offline payments, so you'll want to look at a separate accounting system for those payments.
That said, it's totally understandable that you'd want to keep this data in one place. You might be interested in using our webhooks system to offer live updates to your accounting system without directly touching the code that creates the charge in Stripe.

Resources