Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.payvessel.com/llms.txt

Use this file to discover all available pages before exploring further.

Accept payments with minimal integration using Payvessel’s hosted checkout. Customers can pay with card or bank transfer in a single modal. Ideal for e-commerce, donations, and subscriptions.

Overview

Payvessel Checkout provides a secure, conversion-optimized payment interface. You can integrate it in two ways:
  1. npm package (Recommended): A lightweight frontend SDK that handles the modal UI and payment channels.
  2. Merchant Checkout API: A server-side integration for custom redirects or backend-driven flows.
Use your public API key (api_key) in frontend code. Keep secret keys server-side only.
For production systems, use this flow:
  1. Create order/session state on your backend first.
  2. Launch checkout from your frontend using payvessel-checkout.
  3. On completion callbacks, verify transaction status on your backend.
  4. Fulfill value (goods/services/wallet credit) only after successful server-side verification.

Integrating with payvessel-checkout

The payvessel-checkout package is the fastest way to add payment capabilities to your web application.

Installation

Install the package via npm or Yarn:
npm install payvessel-checkout
# or
yarn add payvessel-checkout

Usage Examples

Include the SDK via CDN or bundle it with your app.
<!-- Via CDN -->
<script src="https://unpkg.com/payvessel-checkout@latest/dist/index.umd.js"></script>

<script>
  const openCheckout = async () => {
    const init = PayvesselCheckout.Checkout({
      api_key: "YOUR_PUBLIC_API_KEY",
    });

    await init.initializeCheckout({
      customer_email: "customer@example.com",
      customer_name: "John Doe",
      customer_phone_number: "08012345678",
      amount: "5000",
      currency: "NGN",
      channels: ["BANK_TRANSFER", "CARD"],
      onSuccess: (response) => {
        console.log("Initialization Successful", response);
      },
      onSuccessfulOrder: (orderDetails) => {
        console.log("Payment Successful", orderDetails);
        // Verify payment on your server
      },
      onError: (error) => {
        console.error("Checkout Error", error);
      },
      onClose: () => {
        console.log("Checkout Closed");
      }
    });
  };
</script>

<button onclick="openCheckout()">Pay Now</button>

Essential Parameters

ParameterTypeRequiredDescription
api_keystringYesYour Public API Key from the dashboard.
customer_emailstringYesThe customer’s email address.
customer_phone_numberstringYesThe customer’s phone number.
customer_namestringYesThe customer’s full name.
amountstringYesAmount to charge in naira (e.g., “100” for ₦100.00).
currencystringYesCurrency code, default is NGN.
metadataobjectYesAttach order context (for example, order id and cart id).
channelsarrayNoPayment methods: ["BANK_TRANSFER", "CARD"].
referencestringNoYour unique transaction reference.

Callback Behavior

CallbackWhen It FiresRecommended Action
onSuccessInitialization succeeds (checkout session created)Log and track for observability.
onSuccessfulOrderCustomer completes payment and transaction is confirmed in checkout flowCall your backend to verify and then fulfill value.
onErrorCheckout initialization/payment flow encounters an errorShow user-friendly error and allow retry.
onCloseUser closes the modalPreserve cart/session and allow resume.

Server-Side Verification

After a successful payment, always verify the transaction on your server before providing value to the customer.
  1. Listen for webhooks from Payvessel.
  2. Or use the Verify Transaction API to check the status manually.
For technical details, see:
Never mark an order as paid based only on frontend callbacks.

Mobile and Platform SDKs

If you are not integrating with a web frontend, use the SDK that matches your platform.

React Native SDK (react-native-payvessel)

Use this SDK for React Native apps with in-app modal checkout.
npm install react-native-payvessel react-native-webview
# iOS only
cd ios && pod install
import React, { useState } from "react";
import { View, Button } from "react-native";
import PayvesselCheckout from "react-native-payvessel";

export default function App() {
  const [visible, setVisible] = useState(false);

  return (
    <View style={{ flex: 1 }}>
      <Button title="Pay with Payvessel" onPress={() => setVisible(true)} />
      <PayvesselCheckout
        visible={visible}
        apiKey="YOUR_API_KEY"
        customerEmail="customer@example.com"
        customerPhoneNumber="08012345678"
        customerName="John Doe"
        amount={1000}
        currency="NGN"
        channels={["BANK_TRANSFER", "CARD"]}
        onSuccess={() => setVisible(false)}
        onError={(error) => console.error(error)}
        onClose={() => setVisible(false)}
      />
    </View>
  );
}
Reference: react-native-payvessel on npm

iOS SDK (Payvessel)

Install with CocoaPods:
pod 'Payvessel', '~> 1.0'
Or Swift Package Manager:
dependencies: [
  .package(url: "https://github.com/Nex-Panther-Technologies-Ltd/payvessel-ios-sdk.git", from: "1.0.0")
]
import Payvessel

Payvessel.shared.configure(with: PayvesselConfig(
  apiKey: "your_api_key",
  secretKey: "your_secret_key",
  environment: .sandbox
))
Reference: Payvessel on CocoaPods

Android SDK (payvessel-android-sdk)

Add JitPack and dependency:
dependencyResolutionManagement {
  repositories {
    google()
    mavenCentral()
    maven("https://jitpack.io")
  }
}
dependencies {
  implementation("com.github.Nex-Panther-Technologies-Ltd:payvessel-android-sdk:1.0.0")
}
Payvessel.configure(
  PayvesselConfig(
    apiKey = "your_api_key",
    secretKey = "your_secret_key",
    environment = PayvesselEnvironment.SANDBOX
  )
)
Reference: Android SDK on JitPack

WooCommerce Plugin

For WordPress stores, install the official WooCommerce plugin and add your Payvessel keys in WooCommerce payment settings. Reference: Payvessel Payment Gateway for WooCommerce

Next Steps

Initialize API Reference

Request/response schemas for server-side integration.

Verify API Reference

How to confirm payments accurately.