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:
- Call
GET /api/v1/payments/payment-methods - Filter methods where
currenciesarray includes"NGN" - Display the filtered methods to the customer
- When customer selects a method, use its
idin 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.
Related Endpoints
- List Supported Currencies - Get all currencies organized by type
- List Payment Rails - Get specific rails for a payment method + currency
- Create Checkout - Create a checkout with specific payment methods
Next Steps
After retrieving payment methods:
- Get supported currencies to see all available currencies
- Create a checkout to start accepting payments
- Create a quote to get real-time pricing