Does anyone know if you're allowed to use saved card details for MOTO payments?
The scenario is this.
Customer calls in.
Agent brings up customer details
Agent see that the customer has saved cards already on their account
Agent selects saved card
Agent uses that to start the payment (I believe CCV details will need to be
added to complete payment)
It was my understanding that all card details need to be keyed in (card number/date/CCV).
In my case, we're using Stripe API, but I'm more concerned about the rules of the process in general.
If you want to process MOTO payments with the Stripe API, you first need to contact Stripe to enable that feature as explained here. Otherwise, if your account is in the European Economic Area, payments made by manually entering card details in the Dashboard will be automatically marked as MOTO by Stripe.
However, as mentioned on this support page, note that:
You’re responsible for ensuring that you protect your customers’ card information in accordance with PCI compliance requirements.
Manually creating payments through the Dashboard must only be performed when there are exceptional circumstances preventing you from using your own integration. It cannot be your primary method of processing payments on your account.
Related
I want to create a platform which will provide a digital service where the customers and connected accounts will be from around the world. Clearly Stripe Connect is the Stripe product to use.
Because many of the connected accounts will be overseas this straight away rules out the use of transfers - unless I explored setting up separate platform accounts in the different overseas countries. (https://stripe.com/docs/connect/capabilities-overview#cross-border-transfers)
So I am left with destination charges where I choose the connected account as the settlement merchant via the on_behalf_of parameter. This means the charge goes against the connected account but I can still make money by charging an application fee.
As the connected account will be invisible to the end customer on the platform it seems inappropriate for the connected account's details to show on the customer's bank / credit card statement. Instead I want the platform's details to show.
Stripe support have assured me it is possible to have only the platform's details. Indeed this part of the API suggests I can control the statement descriptor which shows - https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-statement_descriptor
But another article - https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-statement_descriptor - seems to almost contradict this. It explains
Any additional information that’s displayed on a customer’s statement
is also provided by the same account that provides the static
component (business address, phone number).
Can anybody clarify? Many thanks in advance.
Update
This article appears to settle the matter - https://stripe.com/docs/payments/connected-accounts
Guess I will just have to inform users on my website with a connected account that their details will show on the bank statement.
I have a platform which users register on with their car and then another user can then rent the car for a period of time. When the payment for the rental is received to our company account I need to be able to pay out 80% to the car owner and then pay our company account the remaining 20%.
I have Stripe integrated on my platform and we can receive payments but I don't know how to set up the rest, Stripe support are saying the platform developers need to do it, but the platform developers don't know where they need to do this and tell me I actually need to do it within Stripe myself. Im so frustrated and confused as no one is helping me.
I would be so grateful for some advice and help on if code needs to be put on the platform by the developer and if so what code? Also if there is a link to the correct guidelines.
Thank you in advance!
Gen
The product you need to use here is called Stripe Connect. It allows you to collect payments on behalf of a third-party, send them the funds and keep a portion of it for yourself.
The idea is that you will act as a platform and have your own Stripe account. Car owners will be able to register with your platform and create their own Stripe account that will be connected to your own.
When a customer wants to book a car you'll be able to collect their card details securely and charge them on behalf of the car owner while keeping a portion of the funds for yourself.
This will be a more complex integration though and something that your developers will need to build for you if you're not the developer yourself. You'll use multiple Stripe products such as Connect as mentioned earlier, but also Checkout or Elements to collect card details.
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.
This is the scenario I expect the system behave:
I have a platform where users can register and store their credit card information online, and with specific user's action, system automatically settles payment.
Of course, user expect automatic payment system as we said so when they enter their card information, and the purpose of this is to simplify the process when they decided to pay for something.
My question is this:
I found that Amazon saves user's card information when they purchased some products then user doesn't need to put all the card information again but just select from the list of cards he used and with one click, it finishes payment.
Also, in price line, I found that it automatically settles after bid accepted.
So I tried to find the provider or payment gateway company that Priceline or Amazon provide, and tried to find the way to implement the system at least, but couldn't find any. What I have found so far were like, using paypal, and it requires user to have paypal id
I'm doing this in PHP, can anybody give me some clue please?
Thanks in advance.
You should be able to do this with most payment gateways that support recurring payments.
Typically what you would do for new customers is capture their card details 'as normal' (via the payment gateway). The payment gateway will return a token id which you then store against the customer record
Next time that customer makes a payment you can submit the tokenised card number to the payment gateway
Since you mentioned Amazon, you might want to look at their payment service API: http://aws.amazon.com/fps/
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.