@spot-flow/vue-spotflow-checkout
v0.1.5
Published
This **Spotflow Vue.js library** wraps around the [inline library](https://github.com/Spotflow-One/spotflow-checkout-inline), which enables users to make payments seamlessly. It integrates smoothly into your Vue.js application, providing a streamlined ch
Readme
Spotflow Checkout Vue.Js
This Spotflow Vue.js library wraps around the inline library, which enables users to make payments seamlessly. It integrates smoothly into your Vue.js application, providing a streamlined checkout experience.
Available Features:
- Collections: Card, Bank Transfers, USSD
- Recurring payments: Tokenization and Subscriptions.
Table of Contents
Requirements
- Spoflow API key
- Spotflow Encryption key
- Node versions >= 16.x.x npm >=7.x.x
Demo

Installation
To install the library, you can use either Yarn, NPM or PNPM. Choose the one that fits your project setup:
Using Yarn
yarn add @spot-flow/vue-spotflow-checkoutUsing NPM
npm install @spot-flow/vue-spotflow-checkoutUsage
This library can be implemented using the following
- By Using Composable (Recommended)
- By SpotflowButton Component
1. Using Composable
The composable approach gives you full control and flexibility.
in payment-component.vue
<script setup>
import { useSpotflowPayment } from '@spot-flow/vue-spotflow-checkout'
const loadSpotflow = useSpotflowPayment()
const handlePayment = async () => {
const config = {
amount: 4000, // Not required for subscription payment
currency: "NGN",
email: "[email protected]", // Email of customer
name: "John", // Name of customer: Not required
phoneNumber: "09090909090", // Phone number of customer: Not required
reference: "MC-123456", // Not required, a unique payment reference will be generated if not provided
merchantKey: "sk_test_fXXXXedhXXXXXXXXXXXXXXXX",
planId: "9e0808304-344d-XXXXXXXXX-XXXXX834034", // Not required for a one time payment
encryptionKey:"SKKXXXXXXXXXXXXXXXXX"
}
await loadSpotflow(config)
}
</script>
<template>
<div>
<button @click="handlePayment">
Make Payment
</button>
</div>
</template>1. Using SpotflowButton Component in Vue 3
in payment-component.vue
<script setup lang="ts">
import { SpotflowButton } from "@spot-flow/vue-spotflow-checkout";
import { defineComponent, ref } from "vue";
const config = {
amount: 4000, // Not required for subscription payment
currency: "NGN",
email: "[email protected]", // Email of customer
name: "John", // Name of customer: Not required
phoneNumber: "09090909090", // Phone number of customer: Not required
reference: "MC-123456", // Not required, a unique payment reference will be generated if not provided
merchantKey: "sk_test_fXXXXedhXXXXXXXXXXXXXXXX",
planId: "9e0808304-344d-XXXXXXXXX-XXXXX834034", // Not required for a one time payment
encryptionKey:"SKKXXXXXXXXXXXXXXXXX"
};
</script>
<template>
<h1>Payment Component</h1>
<div>
<!-- Just need to click the button -->
<SpotflowButton :config="config">
Pay Now
</SpotflowButton>
</div>
</template>Parameters
Read more about our parameters and how they can be used here.
| Parameter | Required |Description | | ------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | merchantKey | True | Your API Secret | | reference | False | Your transaction reference. This MUST be unique for every transaction | | amount | False | Amount to charge the customer. NB: For subscription payments, amount comes from the plan details. This is not required for subscription payments. | | currency | True | Currency to charge in. | | localCurrency | False | This is only required when a payment is being made in USD | | encryptionKey | True | This is the encryption key for the merchant. This is required for card payments. | | planId | False | This is the plan ID being paid for however, this is not required for one time payments. | | name | False | This is the Customer's Name | | phoneNumber | False | This is the Customer's Phone Number | | email | True | This is the Customer's Email Address | | metadata | True | This contains other information about the product such as the product name and other additional properties. Product Name should not be passed if planId is being passed | | callBackUrl | False | This is the URL the browser redirects to on success of a payment |
🎉 Spotflow Hacktoberfest 2025
Welcome to Spotflow’s open-source repositories — part of this year’s Hacktoberfest Challenge by DigitalOcean!
Spotflow is a global Merchant of Record (MoR) that simplifies payment processing for businesses worldwide.
We handle everything from global payment acceptance to compliance and settlement — empowering merchants to go global effortlessly.
🚀 How to Participate
- Register for Hacktoberfest at hacktoberfest.com
- Fork this repository.
- Choose an issue labeled
hacktoberfestorgood first issue. - Make your contribution (see Contributing Guidelines).
- Open a pull request (PR) and add a
hacktoberfest-acceptedlabel to your PR. - Once approved and merged — it counts toward your Hacktoberfest goal!
💡 What You Can Contribute
- Improve or add SDK functionality
- Write or improve API documentation
- Spot bugs/improvements and write new issues (use Issues Template as a guide).
- Add new language SDKs (Python, JS, Java, etc.)
- Fix typos, formatting, or examples
- Write tutorials or integration guides
📅 Important Dates
- Event: October 1 – October 31, 2025
- Application Deadline: October 31, 2025
🧠 Resources
- Docs: https://docs.spotflow.one
- API Playground: https://www.spotflow.one/demo
- Sign up: Spotflow Hacktoberfest Form
