Stripe Payment Intents
  • 23 May 2023
  • 4 Minutes to read

Stripe Payment Intents

Article Summary

What Is Stripe Payment Intents ?

Stripe Payment Intents is a SCA-compliant card payment providers that lets customers located in the European Economic Area (EEA) pay for their invoices. Strong Customer Authentication (SCA) is a legal requirement in the EEA as part of the Revised Payment Services Directive (PSD2). This includes a two-factor authentication for online payments across Europe to help reduce the incidence of payer fraud.

Your online card transactions must be SCA-compliant if your business payment provider and your customer's payment provider are both located within the European Economic Area. If only one party is located in the EEA, the directive remains to show one's 'best efforts' to implement SCA.

Country Availability
United Arab Emirates, Austria, Australia, Belgium, Bulgaria, Brazil, Canada, Switzerland, Cyprus, Czechia, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece, Hong Kong, Hungary, Ireland, India, Italy, Japan, Lithuania, Luxembourg, Latvia, Malta, Mexico, Malaysia, Netherlands, Norway, New Zealand, Poland, Portugal, Romania, Sweden, Singapore, Slovenia, Slovakia, United States.

One-off payments in Nexudus

Automated payments in Nexudus

Automated refunds in Nexudus

What You Need to Integrate Stripe Payment Intents

An Active Stripe account

If you don't have a Stripe account yet, we recommend you create your account via their website or get in touch with their sales team via their contact form.

Make sure your account is fully active and not in Test Data mode before getting started.

If you see a Test Data banner at the top of the page and your secret key has a Reveal test key button, your Stripe account isn't ready for the integration.


Add the necessary business and bank details to your Stripe account to activate it before moving to the next step. You'll know your account is live when the Test Data banner doesn't appear at the top of the API Keys page anymore.

If you complete the integration using your test details instead of your active (live) details, you won't be able to successfully process and collect payments using Stripe.

A File to Temporarily Store Information

You will need some of the information collected in step one and two during the third step of the integration process. To make sure you have this information readily available when you'll need it, open a document in any word processing tool such such as Google Docs, Word, Notepad or Notes. You'll be able to copy and paste information in that file and store it until you've completed the integration.

Integrating Stripe Payment Intents with Nexudus

Integrating Stripe Payment Intents with Nexudus is a four-step process.

Step 1. Finding your Secret API Key in Stripe

If you don't have it already, you need to obtain your Stripe secret API key. You can get it via the Dashboard of your Stripe account.

  1. Go to and log in to your Stripe account.

  2. Click Developers > API Keys in the navigation menu on the left.

Make sure your account is not in Test Data mode.

If you see a Test Data banner at the top of the page and your secret key has a Reveal test key button, your Stripe account isn't live and it isn't ready to complete the integration.


  1. Click on Reveal live key token.


  1. Copy your key and save it somewhere.
Make sure the key is readily available as you will need to add it in Nexudus during step 3.

Step 2. Creating a Stripe Webhook

Once you've obtained your secret API key in your Stripe account, you can create your webhook in your Stripe account.

  1. If you left the page from step 1, go back to and log in to your Stripe account.

  2. Click on Developers > Webhooks in the naviagtion menu on the left.

  3. Click Add Endpoint in the top right corner of the page.

  4. Add to the Endpoint URL field.

  5. Click Select event and select the following events:

  • payment_intent.succeeded
  • payment_intent.payment_failed
  • payment_intent.amount_capturable_updated

Your webhook endpoint form should look like this:


  1. Click Add endpoint.

  2. In the URL of the page, copy the webhook ID and save it somewhere.

Your webhook ID always starts with we_ and contains a combination of letters and numbers. For example, the webhook ID of the demo account shown below is we_1L2z1mI0HcZzNqbGGK33oaCJ.


Make sure the webhook ID is readily available as you will need to add it in Nexudus during step 3.
  1. Click Reveal in the Signing secret section.


  1. Copy the signing secret and save it somewhere.
Make sure the signing secret is readily available as you will need to add it in Nexudus during the next step.

Before moving to the next step, make sure you have the following elements readily available:

  • Your webhook ID
  • Your webhook signing secret
  • Your API secret key (from Step 1)

Step 3. Enabling Stripe Payment Intents in Nexudus

Once you've gathered all the necessary information from your Stripe account, you can enable the Stripe Payment Intents integration in your Nexudus account.

  1. Log in to the Admin Panel if you aren't already.

  2. Click Settings > Payments and Currency > Payment Methods.

  3. Click on the Stripe Payment Intents tile.

  4. Add Stripe Payment Intents to the Payment gateway name field.

This is the name of the payment option as it will be displayed on the Members Portal.
  1. Fill out the Transaction fee section if you want to charge customers choosing to pay their invoices using this payment method.
Always check local laws and business regulations before implementing any transaction fee on card payments.

Transaction fees, also known as surcharges, are illegal in most European countries, including the United Kingdom.

  1. Add your API secret key to the Login field.

  2. Add your webhook ID to the Webhook Id field.

  3. Add your webhook signing secret to the Webhook Signing Secret field.

  4. Click the Save Changes button.

All set! Stripe Payment Intents is now a payment option on your Members Portal. We recommend you test your payment method to ensure it works as intended.

Was this article helpful?