I am developing app where transfer money from platform to connect when completing some task.
And then my app customers can get money in their stripe account.
I think they need to get receipt for getting earning when using my app but I can't see how to send receipts to customer's email for transferring.
I know it can by specifying receipts_email when charing and refund but no such stuff in transfer object.
How can my app send receipt to customer for transferring ?
if it's impossible what is providing instead in stripe?
Really I need to get help.
Thank you.
The email receipt feature is only available for Charges which happen when you charge a Customer's card. This is documented here: https://stripe.com/docs/receipts
Stripe does not send email receipts when you transfer funds to a connected account or when funds are sent to their own bank accounts. This is something that you would need to build on your side instead based on the funds you're sending to them.
Related
I generated a stripe ACH account as highlighed in this doc. How do I get notified when this deposit happens so I can give user value for there payment.
I am looking at using webhooks but I can not find what the structure of data stripe will send looks like.
I'm working on a POS app where users can buy things from owners. How can I send the money directly from the user to the owner in nodejs?
Thanks
You need to use Stripe Connect in order to send funds to another account with Stripe.
Stripe Connect is a huge topic and needs lots of research into account types and fund flows: https://stripe.com/docs/connect.
i am using stripe connet account, and i need to transfer money from platform balance to my connected user's external bank account..
so i am using transfers api . on using transfer api, amount is deducted from platform balance and added to connected user's transfers..
after scheduled payout timing.. i.e. (2 days for US) after the transfer was made, the payout will be attempted..
now i want to get notified when the amount reaches the user's bank account... what webhook i should use?
will only transfer(transfer.paid, transfer.failed) webhook will be enough or i need to use payout(payout.failed, payout.paid) webhooks also to be used to get notification that amount reached my connected user's external bank account.
You'll receive a payout.paid event when Stripe expects the payout to land; however, Stripe doesn't receive confirmation of it, so it's a best guess. If the payout fails, you'll receive a payout.failed, so as long as you don't receive that one, you should be good.
How can I use Stripe Connect, let's say to create a "Direct Charge", while sending an Invoice on the Telegram Payment API?
The Telegram API seems to only allow for a "provider_token", I see no further details for the Stripe API, like the required "stripe_account" property for direct charges.
I guess Telegram itself uses Stripe Connect to charge on the users behalf... But that doesn't seem to have stopped this guy from doing something very similar:
https://www.reddit.com/r/TelegramBots/comments/6f6b4z/telepay_a_bot_that_enables_instant_and_secure/
He uses express accounts, but the fundamental problem of not being able to speak to stripe directly seems to be the same.
Thanks :)
You're correct about the Telegram API: there is no way to create a direct charge to a connected Stripe account when receiving payments through Telegram. But there are workarounds. I'm the author of the bot you linked; here's how I managed to move funds from my account to a connected Stripe account via Telegram.
Firstly, you need to accept the payment as usual (e.g. follow the normal sendInvoice flow). For my purposes, I made the payload parameter the ID of the user that is being sent the money (it's later matched with the Stripe account ID in the database, but you can do this however you want). The rest is out of scope of the question, so I won't describe this process in detail; Telegram has a very nice guide on it.
Once you receive the successful_payment event from the Telegram API, you can then transfer the money from your own Stripe account to the linked Stripe account using the Stripe Connect transfers endpoint, but be careful: it doesn't give you the amount that was given to your own Stripe balance (taking fees into account), so you will need to calculate that yourself. Depending on your account, it would look something like this for JavaScript: payment.total_amount - Math.round(payment.total_amount * 0.029 + 30).
After you've transfered the money to their account, you can perform a payout as usual with the payouts Stripe Connect endpoint.
But note that this is just one example; you can use all of the Stripe Connect APIs with this. In fact, you probably have even more flexibility with this, since the funds hit your Stripe account before they reach the connected account's, so you can do whatever you want with them :)
So, TL;DR: Once you've received the successful_payment from Telegram, transfer the money to the connected Stripe account, then perform a payout on it.
My requirement is, from my application I want my user to transfer the amount to another user of my application. Assume that both user have stripe account. I have gone through stripe docs, and I understood that in order to do transfer from one user account to another I need to use stripe connect. I could able to do authentication and I'm getting access token successfully for the sender. How can I make a transfer to a recipient ? I have only recipient's email id with me. Should I need to create a recipient through code and do the transfer using that recipient id returns from stripe ?
Im using php. Please help me.
Stripe Connect doesn't work like that. Instead, Connect allows an application to make card charges on behalf of a user and take a portion of the amount. The rest is automatically and immediately put into the user's Stripe account, where it's subject to the normal bank account transfer rules (2-7 day rolling transfers or API-driven manual transfers).
Another way to do this is using Stripe Recipients and Transfers. For example, your application charges a customer $10. You create a Recipient for your user using their bank account information (account number and routing number). Then, you can create a Transfer from your Stripe account to their bank account. Note that this only works for US bank accounts as of today.
If you really want to do user to user transfers, unfortunately Stripe isn't the platform for you. You could use PayPal or you could possibly use Balanced Payments, although again you can only transfer money to and from US bank accounts.