List Payment Methods

Overview

Retrieve all payment methods supported by SyncPay. This endpoint returns detailed information about each payment method, including display names, supported currencies, and method types (fiat or crypto).

Use this endpoint to:

  • Display available payment options to your customers
  • Build dynamic checkout flows
  • Determine which payment methods support specific currencies
  • Configure your integration based on available methods

Note: This is a public endpoint - no authentication is required. However, including your API key will ensure you receive methods available in your environment (test or live).


Authentication

Type: API Key (optional but recommended)

If you include an API key, the response will reflect payment methods available in your environment (test or live mode).

Required Headers (Optional)

Header Required Description
Authorization No Format: Bearer sk_test_... or Bearer sk_live_...

Request

Method & Path

GET /api/v1/payments/payment-methods

Example Request

curl https://api.usesyncpay.com/api/v1/payments/payment-methods \
  -H "Authorization: Bearer sk_test_abc123xyz..."

Response

200 – Success

Returns a list of all supported payment methods with their configurations.

{
  "payment_methods": [
    {
      "id": "bank_transfer",
      "display_name": "Bank Transfer",
      "icon": "bank",
      "description": "Pay via bank transfer",
      "type": "fiat",
      "enabled_by_default": true,
      "currencies": ["USD", "NGN", "GHS", "KES", "ZAR"]
    },
    {
      "id": "mobile_money",
      "display_name": "Mobile Money",
      "icon": "mobile",
      "description": "Pay with mobile money",
      "type": "fiat",
      "enabled_by_default": true,
      "currencies": ["NGN", "GHS", "KES", "TZS", "UGX"]
    },
    {
      "id": "card",
      "display_name": "Debit/Credit Card",
      "icon": "card",
      "description": "Pay with Visa, Mastercard, or Verve",
      "type": "fiat",
      "enabled_by_default": true,
      "currencies": ["USD", "NGN", "GHS", "KES", "ZAR"]
    },
    {
      "id": "crypto",
      "display_name": "Cryptocurrency",
      "icon": "crypto",
      "description": "Pay with USDT or other cryptocurrencies",
      "type": "crypto",
      "enabled_by_default": true,
      "currencies": ["USDT_TRC20", "USDT_ERC20", "BTC", "ETH"]
    }
  ]
}

Response Fields

Field Type Description
payment_methods array List of payment method objects
payment_methods[].id string Unique identifier for the payment method (used in API requests)
payment_methods[].display_name string Human-readable name for display to customers
payment_methods[].icon string Icon identifier for UI rendering
payment_methods[].description string Brief description of the payment method
payment_methods[].type string Method type: fiat or crypto
payment_methods[].enabled_by_default boolean Whether this method is enabled by default for new merchants
payment_methods[].currencies array List of currency codes supported by this method

Example Use Case

Scenario: Your checkout page needs to dynamically display payment options based on the customer's location and currency. For customers in Nigeria paying in NGN, you want to show only payment methods that support NGN transactions, ensuring customers see relevant options and reducing checkout abandonment.

Implementation:

  1. Call GET /api/v1/payments/payment-methods
  2. Filter methods where currencies array includes "NGN"
  3. Display the filtered methods to the customer
  4. When customer selects a method, use its id in subsequent API calls
// Example: Filter payment methods for NGN
const response = await fetch('https://api.usesyncpay.com/api/v1/payments/payment-methods', {
  headers: { 'Authorization': 'Bearer sk_test_abc123xyz...' }
});

const data = await response.json();
const ngnMethods = data.payment_methods.filter(method => 
  method.currencies.includes('NGN')
);

// Display: Bank Transfer, Mobile Money, Card, USSD
console.log(ngnMethods.map(m => m.display_name));

Payment Method Types

Fiat Methods

Traditional currency payment methods:

  • Bank Transfer: Direct bank account transfers
  • Mobile Money: Mobile wallet payments (M-Pesa, MTN, etc.)
  • Card: Debit and credit card payments

Crypto Methods

Cryptocurrency payment methods:

  • USDT (TRC20): Tether on Tron network
  • USDT (ERC20): Tether on Ethereum network
  • BTC: Bitcoin
  • ETH: Ethereum

Note: Cryptocurrency currencies use underscore notation for networks (e.g., USDT_TRC20).


Using Payment Method IDs

The id field from this endpoint is used throughout the SyncPay API:

  • Creating Quotes: Specify which payment method to quote for
  • Creating Checkouts: Filter available payment methods
  • Whitelabel Checkout: Initiate payment with specific method

Example:

{
  "payment_method": "bank_transfer",
  "currency": "NGN"
}

Important Notes

Currency Format

  • Fiat currencies: Standard 3-letter ISO codes (USD, NGN, GHS)
  • Crypto currencies: Asset + network (USDT_TRC20, USDT_ERC20)

Dynamic Payment Methods

The list of available payment methods may change as SyncPay adds support for new payment providers and regions. Always call this endpoint dynamically rather than hardcoding method IDs in your application.

Enabled by Default

The enabled_by_default field indicates whether a payment method is automatically enabled for new organizations. You can enable/disable specific methods in their dashboard settings.



Next Steps

After retrieving payment methods:

  1. Get supported currencies to see all available currencies
  2. Create a checkout to start accepting payments
  3. Create a quote to get real-time pricing