Using Stripe Connect to facilitate transactions between users? - api

Specific requirements for my app:
buyers must be able to use credit card
i want to collect a portion of each transaction (fee)
I was initially using Dwolla but realized that users would not be able to pay with credit cards. Now I'm looking at Stripe and see that they have Stripe Connect.
Would Stripe Connect fit the bill? A post here says that SC "would require the [recipients] to have business licenses". Is this true?
Also, looking at the API, I don't see how to direct the received funds to a recipient account. It seems like all you can do is "charge" the card. This seems like it would just put all of the funds in my account. All I want is a portion (fee) and then have the rest somehow deposited in the recipient's account. Is this possible, and if so, how do I specifiy the recipient in the API call?

It's best to view Stripe Connect as OAuth. Merchants can connect their Stripe accounts with you, and you can authenticate to Stripe with their details, and make charges on their behalf. You can take a fee off the top using the 'application_fee' param.
As to your first question, all users would have to sign up to and abide by Stripe's terms. They don't necessarily need to be businesses though - they could be sole proprietors.
You can find more docs on Connect here. https://stripe.com/docs/connect

Related

Handling payments in react-native

So I am building an app with react-native (expo) where a user fixes appointment with some other person and to do so, he has pay the other person.
Now how can I handle payments here. What i want is the user makes the payment and the receiver should be the other person but how much i understood the payment gateways, the payment is received by the app owner or in simple words, receiver is a single person.
I also tried deep linking to directly take the user to some UPI app like google pay or paytm but it seems that those apps require some special type of account (merchant account) to make the transaction if we access them using deep links (which is a problem as it is not necessary that every user will have a merchant account).
As I said, it is always better that you have your own payment gateway account, and all the transaction goes through your gateway, meaning you get the money and you build a system which will forward the payment to the receiver. I have worked on 2 such apps:
1: Where we have our own razorpay account, and we get the payment first, and then we forward it.
2: Where in we were directly having transaction between 2 users, but not through app, instead we display them the account details of the receiver and give them 48hrs time to pay that account. But we had to manually handle this scenario since one cannot know if the user has paid to the said account, since it's not your account.
3: There is one more method where in payment gateway has a webhook which consists of a virtual account number, and every user that lands on your app, you can create a virtual account number for him/her and store the user-virtual account number relationship in your db, whenever there is a payment, you can find out about the user through this virtual account number. Read about this.
The deep link is a good idea, but again, as you mentioned, it will require the end user to be a merchant user(have a merchant account), you can find more details here
Maybe you can ask your users to create a merchant account, which again I am not sure if it's possible, and if it's possible, if it's feasible?
The best way according to me is, you handle this through your payment gateway, and instantly forward it to the user who should have received it. Again there are some rules and clause to it(some commission is taken by those payment gateway,etc), check those things out.
I think the most close answer to my question is to use razorpay routes where we can link multiple accounts with our account and transfer money accordingly.
More details here

How does one associate a website user with a Paypal subscription?

I am implementing subscriptions to a premium service on a website using Paypal as the payment service. I have successfully created a Catalog Product and Billing Plan through the API, and I am able to get to the payment page on Paypal, but it's not clear how I'm supposed to persist a user identifier through the purchase process.
I assumed it would be something along the lines of passing a user id somewhere, but there's nothing in the Paypal documentation about this. I need to be able to let the user make a purchase and have the Paypal webhook send the confirmation to an endpoint on my site, and that's where I'd expect to get their user id to toggle the subscription on their account on my end.
Is there something I'm missing? There has to be a way to do this cause I'd imagine it's a pretty common use case. If anyone has information or has done this before, I'd love to hear. Thanks.
The only truly secure way I've found when using javascript SDK, is to securely generate a unique custom_id on your server side associated with the user.
Then when you create the buttons, the 'createSubscription' function takes custom_id as a parameter.
Then use a webhook to receive events from your subscription and the custom_id will be present in the body of all BILLING.SUBSCRIPTION events under resource.custom_id.
I am able to get to the payment page on PayPal,
You are vague about what you are doing here. There are multiple ways (and some ways have multiple versions) of accepting subscriptions via PayPal, so it is important that you provide full details about the method you are using.
The time to associate a created subscription ID with a user ID is when it is approved, in the onApprove function if you are using a Smart Payment Button: https://developer.paypal.com/docs/subscriptions/integrate/#4-create-a-subscription

How to use Big Commerce Order API and make customer pay?

I would like to make an API call to Big Commerce backend to complete a purchase on a customer's behalf. Based on the API reference:
https://developer.bigcommerce.com/api/stores/v2/orders#create-an-order
By default, I believe that one can only create an order that not yet paid by the customer. Please correct me if I am wrong.
So, my question is - How do you make a payment on behalf of a customer for the order? It is safe to assume that we have a tokenized credit card of our known customer in a payment gateway like Stripe.
My guess of how it could be done is when an order is created, I can set up a webhook to call the payment gateway to make a charge on the customer's credit card. Is this correct? Are there anything that I should watch out for?
Currently, you cannot use the BigCommerce API to process a payment or full transaction. We only allow payments through the control panel where you can enter credit card details or on the storefront made by the customer. If you'd like to make use of tokenization or recurring payments, it is better to use Rebillia or Recharge (apps).
As you stated, you would need to make a call to Stripe's API to charge the card on file with the customer's token. This should be fine. It won't make any calls back to BigCommerce, so I'd be mindful of error handling (such as if the card has expired) and how you'd retry or mark the order in BigCommerce. Depending on how it was configured, you would want to check order details to ensure you were only processing payments from API created orders.
I'm not sure of what PCI implications might be for the storage of the Stripe tokens. That would be another point for consideration.

eCommerce website - taking payments and Stripe

I'm considering setting up a eCommerce website and was wondering about the payment side of things.
After some searching I came across Stripe, which seems very similar to PayPal and Google Checkout.
I have a few questions about Stripe and eCommerce in general.
What do I need to take payments on my website? Presume that I have the shop set up, and the buy button in place. Do I need an SSL certificate, I've read something about being PCI complaint? What is and why would I need a merchant account.
Stripe appears to handle a number of things for me, and it stores the users card details. How would this work with things such as logging in to a website. Would I store the users email and password and then when they wanted to buy something Stripe would just handle the credit card side of things or would the entire user details be stored on Stripe.
Can you build and style your own payment form that then connects to Stripe or do you have to use their form on your page?
Do you have to upload all of your products to Stripe or can you store these in your own database and just pass the value of goods purchased to Stripe for payment?
What are the advantages/disadvantages of Stripe and is there any competitors that I should know about?
Thanks
Stripe requests that you should serve up payments pages over SSL. Anyone involved in payment processing must comply with PCI, if you use something like Stripe you will need to serve the payments page on SSL, but Strip will handle the payment info. Check out https://support.stripe.com/questions/do-i-need-to-be-pci-compliant-what-do-i-have-to-do for more details on what you'd need to do.
Not entirely sure on this front, perhaps someone else can comment?
You'll be able to style your page and use Stripe for the payment piece.
You can use Stripe's checkout or build your own (sounds like this is what you want to do) via Stripe.js.
Stripe is generally recognized as one of the most developer-friendly ways to accept payments online. They've worked hard to build a simple service that a developer can get up and running a matter of hours. Braintree is a competitor that may offer some valued added services and you might want to take a look at Balanced as well. I work at LevelUp, which has been used in conjunction with Stripe (as another payment method, similar to PayPal) and as a stand alone solution for apps processing online or mobile payments.

Can the Yodlee API be used to retrieve the transactions on any credit card?

A client I work with wants to know if it's possible to use the Yodlee API to look up recent transactions on any credit card.
They'd like it to work without the user needing to be signed up with Yodlee, either directly at the site, or indirectly through a branded partner.
I assume this would be possible if the credit card company itself shared it's transaction data with Yodlee directly, and made it available to their API customers, but I haven't been able to figure this out from the docs available on their website, and haven't been able to reach anyone at Yodlee themselves to ask.
I work for Yodlee. Sorry to hear you're having a hard time getting a hold of us. To answer your question, yes the user has to explicitly authorize any application that leverages the Yodlee API and explicitly add access to their financial accounts for that application.
Best,
Grace
Yodlee screenscrapes websites to retrieve it's information.
Which means that they physically (but in an automated fashion) visit the website in a browser (IE8). Thus to pull any information down they have to visit the website, log in successfully, (optionally but more so on more banks; authenticate the computer) and then they can see all of the information that the user sees. Their API acts as a real time bridge between you (the end user using your website or app) and this browser.
So you have to either implement their very much so convoluted Yodlee API or use one of their generic hosted pages and direct the user to it where upon he/she enters the necessary information. You also have to have an agreement with them too. You also have to convince the user to do it :)