Contact them to find out. Make sure that your business falls under their acceptable business categories - https://stripe.com/en-ca/restricted-businesses - or google "stripe restricted businesses" with your country name.
If you add metadata to the object you're receiving a webhook event on, for instance a PaymentIntent, then the webhook event payload will contain that metadata as well: https://stripe.com/docs/api/metadata
Settings->bank accounts and scheduling would be a good place to start. Coincidentally the same place you choose between manual and scheduled payouts. You want manual.
someone else mentioned this, but this sub is not for account specific support for Stripe. But either way, it sounds like your business might’ve fallen into a restricted business category so they can’t process payments for you. It really sucks, but those restrictions are put in place by the banking institutions Stripe works with. https://stripe.com/restricted-businesses
Yeah should be easy. Just use checkout and create a one-time price for the setup and a recurring price for the subscription (should be easy to do in the dash). Use those for the line items to checkout.
https://stripe.com/docs/payments/accept-a-payment?integration=checkout
Could probably do all in the dashboard using payment links if you're looking for no code
Yes you can do this! You can prefill this information with the /v1/accounts API. Just set the values when creating the account via the API and before sending the user to the onboarding flow using the /v1/account_links API.
All of the properties you want to set are on the business_profile
object of the account object. You can find it in the API reference here: https://stripe.com/docs/api/accounts/object#account_object-business_profile
Hope that helps!
Anything over 1% is problematic, but it’s somewhat based on the time period and ratio of chargebacks to total orders ($ amount doesn’t matter).
You may wish to look at Stripe’s chargeback protection service and/or use of Stripe Radar:
There's a couple possibilities. It sounds like you triggered a 3DS transaction, which requires additional verification to shift the liability away from the vendor.
Basically Stripe says "Hey PNC Bank, we want additional verification for this payment method" PNC (or whatever) then sends you an additional challenge, whether it be a 2FA type text message/email, etc.
If you provide a correct answer to that secondary challenge, it makes the vendor immune from a fraud-related dispute for that transaction.
Check out Stripe's documentation about Strong Customer Authorization.
​
(I'm sort of speculating this is what happened, but it makes the most sense based off of what you described)
Well offourse!
iDeal is used for one time transactions so you cannot use it for a subscription. For this, you can use SEPA transactions. See https://stripe.com/docs/billing/subscriptions/sepa-debit
But now the catch. You can use iDeal to setup the required SEPA mandate for you! https://stripe.com/docs/payments/ideal/set-up-payment
By using that method I believe you can achieve what you want. Please check their docs for all the other payment methods you can use to setup SEPA mandates 😊
If you use eBay Managed Payments, then they do require SSN, etc.
Otherwise you are using PayPal which, you guessed it, collects a bunch of personal info and does address verification by matching billing info with your PayPal account info. There are also circumstances where PayPal asks for SSN.
More info on the Stripe side: https://stripe.com/docs/connect/required-verification-information
Making a payment to your own Stripe account is against Stripe’s TOS and can get your account shut down. If they notice it through regular reviews or if it gets flagged it’ll look really bad for you. I understand you want to test your site and make sure it works live, but Stripe’s test mode will allow you to test everything without real cards. Once it’s working the way you want it to, just switch to your live api keys and you’ll be set. https://stripe.com/docs/testing
okay, then you’ll want to look into using Stripe’s Connect features: https://stripe.com/docs/connect
Connect will allow you to set up your account as a platform and onboard other merchants as connected accounts. Once they have an account set up, you can facilitate payments between the merchant and a customer.
Okay in that scenario, the client should be a Stripe Customer object. The provider should be setup with a Stripe Connect Account. You can implement the logic to charge the Customer/Client using one of the charge types (direct,destination, or separate charge and transfer) as described here: https://stripe.com/docs/connect/charges#types
When you charge, you can specify an ApplicationFee which is your “cut.”
You need a US bank account to accept USD directly as far as I know.
You can still accept USD otherwise, but there are conversion fees that you'll pay on the transaction.
I'm sort of inferring here, so please do your own research: https://stripe.com/docs/currencies/conversions
This sounds like you need to initialize Stripe.js with the connected account as well. https://stripe.com/docs/connect/authentication#adding-the-connected-account-id-to-a-client-side-application
Because the session "belongs to" the connected account, you have to also include the header when retrieving it for redirecting.
You'll likely want to take a read through the Connect docs and specifically this guide for collecting payments as a marketplace and they paying out to your sellers: https://stripe.com/docs/connect/collect-then-transfer-guide
The outcome of disputes are ultimately handed down by the card issuer adjudicating the dispute/chargeback.
While I haven't had to deal with a dispute yet, from my experience in the sandbox, there is a UI to respond to disputes and provide your own evidence, including tracking numbers, screenshots and such. From what I understand, not responding to a dispute is an automatic concession and will result in the aggrieved customer winning the dispute.
​
Check out Stripe's documentation on responding to dispute that goes into greater detail, including a Video guide, if you prefer.
Stripe doesn't care if you leave a bunch of checkout session open. Creating a new checkout session if someone leaves the payment page and adds more to their cart is fine.
If you're really concerned you can expire the old session if you want: https://stripe.com/docs/api/checkout/sessions/expire but I don't see much of an advantage to doing so.
You can get notified for all Product create and updates that happen. To filter based on which ones were from the dashboard vs the API would need to be handled in your application by keeping track of the ones you create through the API.
The event types you’ll likely want:
product.created product.updated product.deleted
https://stripe.com/docs/api/events/types#event_types-product.created
You can use Checkout in setup mode to collect card details, but not immediately charge the card: https://stripe.com/docs/payments/save-and-reuse?platform=checkout
Although bear in mind there's no way to do this with a Payment Link yet, you'd need a way to redirect your users to Checkout in setup mode.
As an alternative to stripe checkout, you can use stripe elements which gives you greater flexibility over styling and branding, and it can exist on your site:
https://stripe.com/docs/payments/elements
But you have to implement it properly.
We are trying to save cost on both human and SaaS accounting fees so CSV is already quite far from the goal, besides there is room for manual mistakes by doing so.
However now that you are suggesting to use the Dashboard to export the relevant data I have just found a similar way to get the monthly fees in one line via:
Reports > Financial reports > Balance (tab) then select the month and read the "Less fees" line or export by clicking "print".
And this is leading me to u/boiled_emu_egg's comment bellow about using the API to get the balance transactions txn_ and from there 2 options: if the type is "stripe_fee" get the amount directly from the field "amount" otherwise from "fee" or "fee_details"
Stripe has tools to help you combat fraud, such as Radar. See also: https://stripe.com/docs/disputes.
Stripe doesn’t control disputes. They only pass information between you and the banks. Banks decide the outcome of the dispute.
Thanks for commenting, I was originally using standard but for some reason, it wouldn't autofill some of the details so I went with express and it worked.
I'm using a connected account, and I created the customers and the products in the connected account, and I used this method to pull the customers from the connected account.
If you know PHP here is what is my code looks like:
$stripe = new StripeClient(env('STRIPE_SECRET')); $products = $stripe->customers->all(['limit' => 3], ['stripe_account' => auth()->user()->stripe_connect_id]);
There is a minimum Dispute amount you need to reach for Mastercard (100 must be 1,5% or higher) and VISA (75 must be 0,65% or higher) before you get placed into Monitoring and you need to pay high fines. This counts for all chargebacks.
For Fraud there are limits too. https://stripe.com/docs/disputes/monitoring-programs
Your account might get banned before you even hit o e of these limits.
Ok then, it sounds like your chargeback rate did raise a flag and the 25% reserve is their response.
FYI here’s a great explainer about how Stripe measure chargeback rates and some other things to watch for and consider:
https://stripe.com/docs/disputes/measuring
Good luck!
I think you’re either looking to subscribe to a webhook or check the status of the payment intent on your success page, similar to how you are creating the checkout session.
In my experience, webhooks fire within seconds of the successful payment intent/checkout.
Just to note, this is not an official support channel of theirs so you won’t get a specific solution here.
In general, the need for brand authorisation is mentioned in their restricted businesses documentation:
I encourage you to read the docs on disputes.
>You can accept a dispute, effectively agreeing with the cardholder that the dispute was valid for the reason given. Accepting a dispute isn’t considered an admission of wrongdoing and is sometimes the most appropriate response. The customer has already received their refund through the dispute process—if you agree with the refund, it’s best to accept the dispute. This is the action you should take if you don’t intend to respond and submit evidence. Although accepting disputes doesn’t negatively affect your business any further, it’s not a viable alternative to an effective refund or returns policy. Dispute activity is calculated based upon the disputes received, not won or lost, so dispute prevention is critical.
You're forfeiting the dispute, so there's no chance to win. It will return the money to the customer. I believe you would lose the dispute fee; it's only refunded if you win the dispute.
Pass price_data
: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-price_data.
If you need to share code in the future, share it as text via GitHub Gist or similar services.
Hi there, it wouldn't work exactly that way. With Card present transactions (and specifically EMV transactions), card data gets encrypted in the reader and never gets decrypted until it hits our servers.
You would need to build a terminal integration to do what you're trying to do. Luckily, a basic integration is simple. You can find the details at https://stripe.com/terminal
Start with https://stripe.com/docs/connect. You can use transfers/destination payments to transfer funds to the seller, or “on behalf of” to use the seller’s Stripe account to make the payment. No need to worry about cross-border payouts.
It definitely won't be free, as Stripe will take a fee when you create the ACH charge. Connect is a product that at its core lets you accept payments and pay out to bank accounts that aren't your own. You can think of it as a type of Shopify, where you facilitate payments between other businesses and their own customers.
I suggest you read the docs to get a better understanding of how Connect works and whether it's something you'd want for your business: https://stripe.com/docs/connect
Moving funds from Stripe account to Stripe account is free, however when you accept a payment (like via ACH) Stripe will charge a processing fee.
You'll probably want to to look at Stripe Connect as it seems closest to what you want: https://stripe.com/docs/connect
Afraid not, as PaymentMethods can be limited by currency: https://stripe.com/docs/payments/payment-methods/overview
For instance all the European bank redirects like iDEAL and Bancontact only deal with Euros, so it doesn't make much sense to charge in USD. Stripe doesn't do the currency conversion here because it would make for an odd experience for the end user.
Say for instance you wanted to charge USD $10 for an item, but also wanted to use FPX (a Malaysian payment method) and iDEAL (a Dutch payment method). If Stripe automatically did the currency version then the amount presented to your customers would be (at time of writing) RM 41.39 and EUR 8.20. Those are oddly specific numbers that don't make much sense when presented to your customer. It would be better to, for instance, charge RM 40 or EUR 8 instead.
Stripe does currency conversion the other way round, where you present the payment to your customer in their currency of choice, then it's converted to be the default currency set on your account.
All that to say there's no way to allow all PaymentMethod types on Checkout for now.
There's no easy way to do this unfortunately. The best way would be to list all customers via the API and filter them yourself via the `address.country` field: https://stripe.com/docs/api/customers/object#customer_object-address-country
my use case is similar to postmates or uber. I want to make sure a user has enough money in their account before letting them use my service, so my thought was checking an arbitrary amount (lets say the average cost of rides), and then later on adjusting it to the real amount they should be charged.
Looking through the docs a bit, i think the only way I can do something similar to this is:
1. put a temp hold
Cancel that temp hold amount
Charge them the real amount
Is there a better way...?
I think you should be using Promotion Codes. This guide is very helpful to understand them: https://stripe.com/docs/billing/subscriptions/discounts/codes
Basically, when you are creating a new coupon, at the bottom of the page, toggle "Use customer-facing coupon codes" and that will then allow you to limit the number of times the code can be redeemed.
I haven't tested this yet, but I hope it does the trick.
While I do love Stripe they have countless guides that seem to do the same things differently and with various levels of complexity.
Here is the guide I used when I did my Checkout integration. Guide
I couldn't make too much sense of the guide you posted, but with my integration from the link above, the name and email are collected from the Stripe form. If a customer is not provided, that data is used to create a customer when the payment intent is confirmed.
If you want access to that information, you can retrieve it with the payment intent succeeded webhook. I add meta data when creating the intent to differentiate it from my non checkout generated intents.
Based on the guide I linked, the price and intent are created on the checkout button click. So there is no way to update the price dynamically because it is immediately sent to Stripe and the user routed to the checkout page.
I think that might fall into a category of restricted business as you say: https://stripe.com/restricted-businesses. Reach out to support with as much detail as possible to confirm support.stripe.con/contact
Technically possible, but I think there’s a strong possibility it would fall into a category of restricted business: https://stripe.com/restricted-businesses.
I’d reach out to support with all the details and business model before building anything to make sure it’s allowed.
Stripe does not have such an API. For more on currency conversion and Stripe, see https://stripe.com/docs/currencies/conversions#foreign-exchange-rates.
What are you really trying to do that requires the exchange rate?
Assuming you are integrating with Stripe Checkout, see https://stripe.com/docs/payments/checkout/customization#shipping-address-collection. If you aren’t using Checkout it is up to you to collect this information from your custom form.
Charges and PaymentIntents should not be mixed. For the sake of simplicity, assume they are the same thing. Passing a PaymentIntent as a source in a charge doesn’t make sense.
Keep the PaymentIntent code. Add a second call to confirm the payment intent: https://stripe.com/docs/api/payment_intents/confirm.
See https://stripe.com/docs/payments for complete examples.
Have a look at https://stripe.com/docs/connect/cloning-saved-payment-methods to see the supported method of sharing payment methods.
I suspect you’ll want/need to use express/custom connected accounts to take advantage of separate charges and transfers. See https://stripe.com/docs/connect/charges for more details.
Stripe doesn’t want to hold funds any longer than it has to. The funds will be paid out to your bank account. You can later do a transfer from your Connect platform to a connected account (e.g., the sender or recipient of the funds) once a decision is made.
See https://stripe.com/docs/api/transfers for more details.
These Event types are being triggered by/on different objects in the Stripe API.
The invoice.payment_successful
type Event object is created and sent to any webhook endpoints configured to accept that type of Event when the PaymentIntent
powering the payment of an Invoice
is used successfully.
The invoice.paid
type Event object is created and sent to any webhook endpoints configured to accept that type of Event when the Invoice object has its paid
property modified to a "true" value (see https://stripe.com/docs/api/invoices/object#invoice_object-paid).
Ha. That dad bot gets me every time. But to address your issue, you can have your onboarded users complete any additional verification through their express dashboard. The express dashboard is pretty lacking but it allows the connected accounts to interface minimally with Stripe. That should include completing verification requirements. You can validate this with an account onboarded in test mode too.
Thanks u/Narazemono!
But what I'm looking for is a checkout page from a buy link (like here: https://stripe.com/docs/payments/checkout)
​
Kinda desperate to get this rolling, any suggestions?
The best way is to start with your submission function disabled and use Elements events to check if the form is filled: https://stripe.com/docs/js/element/events
You can use complete + validation errors to check if the entry is plausibly ready.
Yes, you can do this with Stripe.
Take a look at this overview of how invoices work and then at this complete guide to creating an invoice to send to your customer. It includes steps for both the API and using the dashboard, so you can choose how you want to do it.
You can always reach out via email support to get help or for developer integration help via IRC join us in #stripe on freenode.
There is a product called Stripe Connect that facilitates payments on behalf of others. I would recommend spending some time reading through the docs here: https://stripe.com/connect
I've seen the same thing on my account several times in the last few months.
I believe it is a Stripe Fee for "Radar for Fraud Teams"
https://i.imgur.com/WMDCwZk.png from: https://stripe.com/pricing
Why would I choose Paysly over Stripe Checkout?
~~Also, how is Paysly pronounced? https://www.google.com/search?q=pronounce+paisley~~ Edit: Never mind. I see the logo.
Payment first goes to Stripe. It is paid out to your bank account (minus fees) after a few days.
You can learn more about Stripe Billing at https://stripe.com/billing. Docs on invoicing are available at https://stripe.com/docs/billing/invoices.
One way is you could add a credit to the customer. Another would be to make a coupon. You could also listen to the invoice.created event and modify it before it’s finalized. Few ways you could go about this. Take a look at: https://stripe.com/docs/billing/subscriptions/discounts :)
Well, i wouldnt be able to tell you how to build it out exactly (i am not a coder lol), but basically that code block goes over grabbing a token generated with stripe.js/checkout and saving it as a card.object that you can store on a customer.object that would be created almost immediately from the tokenized data.
If Wix allows for injection, i dont see why you wouldnt be able to set up something to snag the token before its used to create a charge to then save them as a customer.
It would definitely all need to be done in your backend though.
https://stripe.com/docs/api/customers/create would be the important section of the API library for creating a customer, sorry i cant be of more help :(
There should be a setting somewhere in Wix to save customers when they make a purchase.
Otherwise you'd need to inject a little bit of code into your website following https://stripe.com/docs/saving-cards tho unsure if Wix allows for code injection or not
You need to use the token to create the customer. Once the customer has been created, you replace the charging source from the token to the customer object. It is all listed pretty basically here:
​
https://stripe.com/docs/saving-cards#saving-credit-card-details-for-later
Howdy!
So you can't save tokens, tokens are only valid for 10 minutes or so.
However you can use the token to create a customer which you will be able to charge later, you can see the so I request here:
https://stripe.com/docs/saving-cards#saving-credit-card-details-for-later
If you have any question about things let me know.
That you can do: https://stripe.com/docs/api/cards/object#card_object-last4
But you will have to fetch them on your server, not through stripe-js.
I realise this is an old question - but for anyone else stumbling here from Google - I'd recommend using the Subscription API instead of Checkout if this is a concern. You then have full control over the process.
Correct.
If the refunds are the result of fraud or abusive activity, you might want to consider moving to Separate Auth and Capture for at least the riskiest purchases. When you manage to identify the issue prior to Capture, you can cancel the PaymentIntent or simply let the auth expire to avoid the lost fees of a Refund.
Are you using Checkout? If you know how many shirts they're buying ahead of time (1 vs 3) you can specify the right fixed amount in the shipping_options: https://stripe.com/docs/payments/checkout/shipping
If you're using Checkout + adjustable quantities I'm not sure. If you're using PaymentLinks I'm not sure, maybe there's something similar?
Not to accept payments, but to get data from their Stripe account and do actions based on that data. E.g. If a new order comes in for more than a certain amount, notify the merchant.
Stripe has some documentation on this but do you know of any good, simple examples? https://stripe.com/docs/building-extensions
Thanks very much
I think you have at least two options here:
1) (If you're using subscriptions) Set the customer up with a subscription using e.g. Stripe Checkout.
2) Use the setup future usage feature to collect a customer's card details and charge them later on.
Hey! Craig here from Stripe. u/ccb621 is absolutely right, the Stripe product that would best suit your needs is Stripe Connect. You can learn all about Stripe Connect's capabilities here: https://stripe.com/docs/connect.
Are you attempting to retrieve a PaymentIntent in the browser with your publishable key? The returned object only includes a subset of the data. You must use your secret key, on your server, to retrieve the complete PaymentIntent.
See https://stripe.com/docs/api/payment_intents/object and the fields labeled, "RETRIEVABLE WITH PUBLISHABLE KEY".
One thing which is confusing is that a checkout session creates sub resources such as a payment intent, but it does not share metadata with them.
So if you add metadata to a session but are listening for a payment intent update webhook, that payment intent wont have your {entity_id: 12345}. There is no implicit metadata transfer. If you want that metadata on the payment intent you would have to set it on the payment_intent_data like here.
But you don't need to do this, the easier way is to
You can show a simple generic success message on the success_url page with a link back into the paywalled part of your app. When the user navigates back in, refetch their data. By this time you will have handled their upgrade on the backend and they will be a "paid" user
The Stripe API has a help page how to place a hold. Maybe a developer would be able to build a custom page that would enable this functionality. Anyone have experience creating something like this?
If you just want to have a link that makes it possible to purchase a product, you can create the Payment Link via the dashboard (API too probably) and you can simply share this static link with customers.
If you want dynamically control what price the customer gets, quantity, etc. then you are looking for not Payment Link but for Checkout session
Sure. If you go through the process of completing a setup intent it saves a payment method to a customer.
You can then go into the Stripe dashboard and select "Create Payment". On that screen find the customer and then you'll have the option to charge the saved payment method (instead of entering card info manually).
Worth noting you can also use Checkout to collect the payment method from the customer. If they have to do 3DS it'll be done as part of Checkout then, once the payment method is saved, you shouldn't need to do 3DS later when making the actual charge. If you go to https://stripe.com/docs/payments/save-and-reuse and use the "Prebuilt Checkout page" tab it has an example where it creates a checkout session in "setup" mode.
I had a read through just now and the end paragraph of section C.3 is I think what covers it.
“A Reversal for a Charge may be issued if the Charge is made without the account owner’s authorisation, or in connection with a Restricted Business, violates the applicable Payment Method Rules, or for other applicable reasons. If a Reversal is issued, we will provide you Notice and a description of the cause of the Reversal.”
They actually have a framework for transferring certain data to other processors, so long at they are PCI compliant themselves:
You may want to review the docs at https://stripe.com/docs/api/idempotent_requests.
You should generate an idempotency key for the unique transaction. If there is a 4XX error, fix the error and generate a new key. If you end up making multiple requests with the same key, subsequent requests will fail (as expected).
It’s probable that they found your business type or the method you go about it to be on the restricted list. They will hang on to your funds in case of refund or chargebacks and that window can unfortunately be up to 6 months.
You need to look at balances and charges, you'll find all the relevant information there.
You can set up webhooks for all the relevant datapoints, and then have your backend fetch charge and balance information that you can parse and use. If you are using connected accounts the process also requires you to use the connected account_ids for fetching data.
Ah https://stripe.com/docs/payments/payment-links states:
"Payment links only support credit cards, debit cards, Apple Pay, and Google Pay."
If you switched over to Checkout you could probably use Alipay (but you'd have to write a little code). I bet Payment links will support more payment methods in the future.
Not sure about Alipay integration specifically but Payment Links are the way to do Checkout with no code: https://stripe.com/docs/payments/payment-links
Maybe that will work for you?
Hey there! You determine which partner is sent a part of the payment via the Account ID of the Connect account you want to make the Destination Transfer to: https://stripe.com/docs/api/checkout/sessions/create#create\_checkout\_session-payment\_intent\_data-transfer\_data-destination
What kind integration are you using with Stripe? Checkout? Something else?
https://stripe.com/docs/receipts claims Billing (invoices/subscriptions) ought to have itemized receipts with taxes
All it took was a Google search: https://stripe.com/en-ca/partners/apps-and-extensions/pos
If you want to integrate, Stripe will not do it for you.
Create the customer first, then store the id in your database, and use it for the transaction. https://stripe.com/docs/api/customers/create?lang=node
looks like you have to use their stupid api and learn code to add a simply quantity of products you have ????
This is sad,, Time to go back to paypal it takes 30 seconds in paypal to add your inventory control plus stripe support is garbage OR you can get a wordpress site and use the stripe ADD ON plugin to add inventory but those of us that use plain old html sites because they don't want their database hacked need to now learn CODE I am not in the business to learn CODE.
I just want to put a field showing I have 10 products in stock and when i get down to 0 products do not allow the customer to buy them just like pyapal does
here is their page on using their API HAVE FUN!!!!
https://stripe.com/docs/api/skus/object
I can't say for sure, but I think escrowing might be considered a restricted business depending on the use case: https://stripe.com/restricted-businesses#financial-and-professional-services
You should reach out to Stripe support directly to get a better idea of whether your use case can be done
Hey there, this is definitely possible. You'll need to setup connect where the the client becomes the connected account and the user’s account becomes the platform account. You can follow our guides to create the subscription, see links below!
Hey there! OAuth allows you to connect an existing Stripe account (or create a new one) to a Stripe Platform. Albeit the OAuth changes to Standard Platforms apply here i.e. accounts can only connect to one Platform except if they have special access from Stripe. More information here: https://stripe.com/connect/onboarding With Connect Onboarding, you first create a Connect Account (via the API), then an Account Link that takes your user through the Connect Onboarding process. This is the recommended integration going forward as it allows your platform more control over being able to collect onboarding details. Connect Onboarding is also better optimized for conversion (doc).
Yeah it looks like you're setting the metadata inside the session. Not sure if there is a webhook for session creation, but if you listen to that you'll see the metadata you set. Though I would recommend setting it in the PaymentIntent.
Check this doc for where you need to set the new object. You're missing the payment intent data options which has the metadata field you need to set.
The sign up and sign in process isn't something you'd use Stripe for. You'd either build that yourself or use something like Auth0. In this instance you'd use Stripe for the subscription part via metered billing: https://stripe.com/docs/billing/subscriptions/metered-billing
Are you able to provide a 100% discount in Stripe?
I've been having issues as they say that every transaction has a minimum amount... https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts
Depending on what you’re using to build your site, the answer for how to do best accomplish this will vary quite a bit. u/ccb621's link is a great resource. This guide that may also be useful; I used it when I needed to add subscription selection and checkout to a site. Do you mind sharing what you’re using for your backend or how comfortable you are coding?
Hey there! This isn't possible to do, you'd need to adjust the amount of the charge yourself. The same is true for the payment intent API today. Tax calculations are only supported for invoices, subscriptions and one-time payments via Checkout. https://stripe.com/docs/billing/taxes/tax-rates
Checkout Session URLs expire after a short time, so I wouldn’t do #1.
If the Product or service you’re selling doesn’t change, just the amount paid, I’d create a product object in Stripe.
You could do #2 and use the price_data parameters in the line item to dynamically set the price. https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-price_data
Note with price_data, you can technically create a product dynamically too if you wanted with nested product_data.
Ultimately, the user will go to some page on your site where you create a session for their custom purchase and redirect them to Checkout.
Stripe can’t track individual users since that is very specific to your system. You can use metered billing to better track when a seat comes online or goes offline. See https://stripe.com/docs/billing/subscriptions/metered-billing.
Every checkout session is creating a payment intent. This payment intent can be cancelled via an API call.
https://stripe.com/docs/api/checkout/sessions/create
https://stripe.com/docs/api/payment_intents/cancel
I dont know if this works, but it should be worth checking.
I echo u/ccb621 on this. We would need more details to be able to assist. Here are some questions to make sure you think about before working with anyone on this:
I am a co-founder at Billflow and spend most of my time with SaaS founders on Stripe integration. We are also a Stripe Expert Sevices partner. If you'd like to have a more detailed conversation about your use case and brainstorm ideas, you can set up a call with me here: https://calendly.com/darafsheh/meeting
They are asking for your personal address - so that should be where you are personally resident as of now - The Netherlands.
Where your business (and it’s other oweners) is resident/registered can be different - and that’s fine. That’s the case for many people.
The reason they ask for personal address details is they need to do KYC (know your customer) checks. It’s completely normal.
N26 is a fully regulated bank so that should be fine:
I believe your customer sets the repayment terms with Afterpay or Klarna. You, the merchant, get all of the money upfront. If you want some form of installments, try using subscription schedules and a six month subscription: https://stripe.com/docs/billing/subscriptions/subscription-schedules. However, this is more complicated than actual BNPL payment methods.
Yes it can! You can also set spending limits: https://stripe.com/docs/api/issuing/cards/create#create_issuing_card-spending_controls-spending_limits
Even if it's not available in your country, you should be able to access the API in test mode so you can play around with it.