Skip to content
Stripe Verified Partner

Vue Stripe Endive Stripe Elements and Checkout as Vue components

Components and composables for every Stripe.js element and method, typed and tested on Vue 3 and Vue 2.7. Drop a provider into your app, render the Payment Element, and confirm with one composable.

Now on Stripe.js 10 (Endive)What changed in v6
my-shop
vue
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import {
  VueStripeProvider,
  VueStripeElements,
  VueStripePaymentElement
} from '@vue-stripe/vue-stripe'
import '@vue-stripe/vue-stripe/style.css'
import PayButton from './PayButton.vue'

const clientSecret = ref<string>()

onMounted(async () => {
  // Your server creates the PaymentIntent (server.mjs)
  const response = await fetch('/api/payment-intent', { method: 'POST' })
  clientSecret.value = (await response.json()).clientSecret
})
</script>

<template>
  <VueStripeProvider publishable-key="pk_test_...">
    <VueStripeElements v-if="clientSecret" :client-secret="clientSecret">
      <VueStripePaymentElement />
      <PayButton :client-secret="clientSecret" />
    </VueStripeElements>
  </VueStripeProvider>
</template>

Vue Stripe in numbers

  • 3.9M npm downloads
  • 14.6K downloads a week
  • 1,126 GitHub stars
  • 34 contributors

See all the numbers (updated Oct 15, 2026)

  • 11.8 kB the whole library
  • 4.2 kB a Payment Element checkout
  • 2.5 kB Embedded Checkout
  • 330 B useStripe alone

Minified and gzipped, tree-shaken. How bundle size works

Pick how you take payments

Six ways to put Stripe in a Vue app, from a single element to a full checkout page. Compare them

  • Payment Element on your page

    Cards, wallets and local payment methods in one form, confirmed against a PaymentIntent.

    VueStripePaymentElement
  • Custom Checkout

    Your own layout on a Checkout Session. Stripe keeps line items, tax, discounts and currency.

    VueStripeCheckoutElementsProvider
  • Embedded Checkout

    Stripe's prebuilt checkout page, mounted inside your page.

    VueStripeEmbeddedCheckout
  • Hosted Checkout

    Redirect to checkout.stripe.com with the session URL your server creates.

    VueStripeCheckout
  • Checkout Form

    A complete checkout form from one component, on a Checkout Session. Stripe beta.

    VueStripeCheckoutForm
  • Pricing Table

    A pricing table you configure in the Stripe Dashboard, embedded with one tag.

    VueStripePricingTable

Try it with a test card

This live demo runs in Stripe test mode against our demo backend. Pay with 4242 4242 4242 4242, any future expiry date and any CVC.

1Product
2Payment
Complete
0

Select a Product

Loading test products...