Stripe Multi-Currency Transfers - stripe-payments

I have implemented a marketplace with a cart, where users can add multiple services and can process payments in their local currency.
Currently each service is linked with a seller on stripe so when a user pays for the service a part of payment goes to the linked seller.
We have taken the following approach as we can have multiple sellers in one payment
Stripe separate charges and transfer
I am facing issue if the user's currency (USD) is not matching with the Platform Currency (EUR) the payment is processed but when we try to process transfer to the seller after the full payment its failing as Currency are not matching.
User makes a charge in USD (local currency) which is successful and stripe then internally process it to EUR as our base currency is EUR. After this we initiate a transfer in USD to the appropriate seller, which fails due to currency issue.
Possible solutions i have tried:
1) I have converted amount from the USD to EUR before making a transfer which succeeds but the exchange rate is not matching with the stripe exchange rate. As stripe also does an internal currency conversion after a full payment, so total after all payment and transfer doesn't match.

Stripe's API error message when you attempt this is pretty straightforward:
The currency of source_transaction's balance transaction must be the same as the transfer currency.
I'd recommend contacting Stripe's Support Team if you have additional questions about currencies and transfers, as they have full information about what may be possible.

Thanks all i have already contacted stripe support team. One possible solution which i came across is to maintain multiple currency balance which i am now looking to implement.

Related

Is there any way on Stripe to send money back to the customer after getting profit on money of the customer?

First, we take money from customers and as soon as we get the profit on the customer investment we want to transfer it back to the customer, is there any way on Stripe. Please guide.
It sounds like you are building an investment platform and Stripe isn't a good fit, since you can't transfer back money to your customer.
You can somehow simulate by using Stripe Connect with each customer as a Connected Account, but it comes with different limitation on funds flow and fee, so it's not recommended.

Is it possible to "delay" payments with push-based synchronous/asynchronous method of payments?

I'm looking for a way to charge my customer after a request was successfully accepted.
To explain it further. I'm developing a marketplace where a private seller can sell his products to private customers. But the customer can only "request" the product and only when the seller accepts his conditions a deal is made.
Now comes the question that I have. Is it possible that the user is paying for the request but is only charged when the request is accepted?
If a request fails the charge has never been done or gets a full refund (but without the loss of transactions fees).
I've seen some couple of websites that use credit cards for that case.
If you look at credit cards as a payment method they are usually a pull-based, reusable and synchronous method of payment. This means that, after capturing the customer’s card details, you can debit arbitrary amounts from the customer’s card without them having to take any additional action and there is immediate confirmation about the success or failure of a payment.
So that is why you can charge someone after a specific period of time.
But in Germany, we don't use credit cards that often. Only pushed-based transactions like Sepa/Sofort/iDeal. Would it be possible to "delay" payments with these methods?
This should be possible. I'm not sure what payment processor you are using/want to use or what is available in Germany but I assume this would be possible with many of them. Probably some useful things to search for that might be similar to what you want would be saving payment methods for later, managing subscriptions, and tokenizing credit cards.
Stripe for example allows you to save credit cards for later under a customer record and then charge a customer later. https://stripe.com/docs/saving-cards
Braintree has recurring billing https://developers.braintreepayments.com/guides/recurring-billing/overview and a vault for storing payment methods https://articles.braintreepayments.com/control-panel/vault/overview.

How to retrieve amount Stripe credited to my account for an order

I'm using Stripe's payments API with their Java library. Our Stripe account is denominated in EUR.
If we charge a customer an amount in USD, and the charge is successful, the charge is credited to our account in the EUR equivalent.
How can we use the Stripe API to find out this EUR amount immediately after the order was successful?
You need to retrieve the balance_transaction associated with the charge, using the charge's balance_transaction attribute.
The converted amount will be available in the balance_transaction's amount attribute.

Allow users to accept payments from their users

I am working on a software that is to be used by businesses which make about $0.5mil revenue per year. I would like to incorporate into the software the option for my users to accept card payments from their clients. So far it seems I have the following options:
Manage multiple merchant accounts on behalf of my clients, however this has a few drawbacks. I would, for example, like to charge some small fee to cover the costs (about 0.1%) which I cannot accept if the payment to my user doesn't go through some stage that I can control where I can deduct the fee and send it my way. Also, about 50% of the mentioned revenue is paid for by credit or debit cards so a volume of $250,000 might not be enough to cover the fees set by the account provider.
Send everything through a merchant account that I control and then distribute the funds to the users. This, however, seems like a very small scale solution at best with the average number of payments per user per day being around 15.
The end result should be that the user enters a price in the software, this gets sent to a card reader where the user's client inserts their card and makes the payment. The amount charged includes all the fees associated. The amount paid will then be sent to some merchant account where my fee will be sent to me and the merchant fee will be deducted, the rest will be sent to my user's account. The whole point being that the user doesn't have to bother with setting up merchant account or card reader and simply gets a card reader from us which connects to the software and can immediately accept payments.
I sincerely hope I am missing something but I would appreciate any help with finding a way how to charge clients of my users and take some small fee.
So as it turns out, the best way to do this is using Stripe after all. If anyone is ever concerned, this is how I solved the problem.
Stripe is currently rolling out Managed Accounts of their Stripe Connect which can be used to effectively manage Stripe accounts for my customers. Therefore, once a user registers for my payment program, I create a managed account for them without the user knowing at all. For incoming Stripe payments I can then use the destination property as the id of the account where the money should go and specify an application fee which will be charged to my own account.
From there on the only problem to solve is that Stripe only supports online payments which can be overcome by using for example Payworks, however so far their service has been pretty terrible so this may be a weak point in the system.

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