Xtopay Docs
Payments

Payment Methods

All payment methods supported by Xtopay and their availability by country.

Supported methods

Cards

Visa and Mastercard debit and credit cards. Supports 3DS2 authentication automatically.

Available in: All countries where Xtopay operates

// No extra parameters needed — cards are available by default
const payment = await xtopay.payments.create({
  amount: 5000,
  currency: "GHS",
  customer: { email: "ama@example.com" },
});

Mobile Money

Push-to-pay via mobile money networks. The customer receives a prompt on their phone and approves the payment with their PIN.

Availability by country and network:

CountryNetworks
GhanaMTN MoMo, Vodafone Cash, AirtelTigo Money
UgandaMTN MoMo, Airtel Money
TanzaniaM-Pesa, Tigo Pesa, Airtel Money
RwandaMTN MoMo, Airtel Money
KenyaM-Pesa
const payment = await xtopay.payments.create({
  amount: 5000,
  currency: "GHS",
  customer: {
    email: "ama@example.com",
    phone: "+233244000000",  // required for mobile money
  },
  checkout: {
    preferred_method: "mobile_money",
  },
});

Bank Transfer

The customer transfers from their bank account to a dynamically generated virtual account number. Xtopay confirms the transfer in real time via direct bank integration.

Available in: Nigeria, Ghana, Kenya, South Africa

const payment = await xtopay.payments.create({
  amount: 50000,
  currency: "NGN",
  customer: { email: "chidi@example.com" },
  checkout: {
    preferred_method: "bank_transfer",
    bank_transfer: {
      expires_in: 1800, // seconds — default 30 minutes
    },
  },
});

USSD

Unstructured Supplementary Service Data — works on any phone, no internet required. The customer dials a USSD code shown on the checkout page, enters their PIN, and payment is confirmed.

Available in: Nigeria, Ghana

const payment = await xtopay.payments.create({
  amount: 2000,
  currency: "NGN",
  customer: { phone: "+2348012345678" },
  checkout: {
    preferred_method: "ussd",
  },
});

Method availability matrix

MethodGHSNGNKESUGXZARUSD
Card
Mobile Money
Bank Transfer
USSD

Restricting methods

By default, Xtopay shows all available methods for the customer's currency. You can restrict to specific methods:

checkout: {
  allowed_methods: ["card", "mobile_money"],
}

On this page