Skip to main content

List Payment Methods

Use this endpoint to discover what payment methods you can offer right now. When you call it, we return:
  • Which method categories are enabled for your account (crypto, ramping, fiat)
  • Your crypto payment options derived from your saved wallets (e.g. BTC, ETH, and stablecoins on ETH)
  • Which on-ramping providers are available (Banxa/Kyrrex) and whether they’re enabled
  • Your fiat card method availability
This is perfect for powering your UI:
  • show/hide crypto checkout
  • show/hide “Buy crypto” (on-ramp) flows
  • show/hide fiat card checkout

Endpoint

GET /api/payment-methods
This endpoint is protected. You must be authenticated.

Authentication

This endpoint supports two authentication methods: Send your API key in the x-api-key header.
curl -X GET "https://www.niftipay.com/api/payment-methods" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: application/json"
If you are authenticated via the dashboard.
For browser calls, you usually don’t need to add headers manually — the cookie is sent automatically.

Response model

The response always includes:
  • enabled: an array of enabled method categories for your account
  • methods: crypto payment methods (derived from your wallets)
  • onRamping: on-ramp provider availability (derived from environment configuration)
  • fiat: fiat method availability (currently card)

Enabled categories

enabled may include:
  • crypto — enable crypto invoice checkout (wallet methods)
  • ramping — enable on-ramp providers (Banxa/Kyrrex)
  • fiat — enable fiat card checkout
If your account has no per-user settings stored, the system defaults to all categories enabled.

Crypto methods: how they are built

When crypto is enabled, the API loads your saved wallets (userWallet) and derives display-friendly methods:
  • For BTC / LTC / SOL / XRP: 1 method per wallet (asset = chain)
  • For ETH: 3 methods per wallet:
    • ETH
    • USDT on ETH
    • USDC on ETH
Each crypto method includes:
FieldTypeNotes
chainstringOne of BTC, LTC, ETH, SOL, XRP.
assetstringBTC/LTC/ETH/SOL/XRP or USDT/USDC (only on ETH).
addressstringThe deposit address used at checkout.
labelstringUI-friendly label (e.g. USDT on ETH).

Fiat methods

When fiat is enabled, the API currently returns:
  • Card payment (fiat) with enabled: true
Each fiat method includes:
FieldTypeNotes
kindstringCurrently always card.
labelstringUI label.
enabledbooleanWhether fiat checkout is enabled for your account.

Examples

Example 1 — Everything enabled (typical)

curl -X GET "https://www.niftipay.com/api/payment-methods" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: application/json"

Example response

{
  "enabled": ["crypto", "ramping", "fiat"],
  "methods": [
    { "chain": "BTC", "asset": "BTC", "address": "bc1qexample...", "label": "BTC" },

    { "chain": "ETH", "asset": "ETH",  "address": "0xabc123...", "label": "ETH" },
    { "chain": "ETH", "asset": "USDT", "address": "0xabc123...", "label": "USDT on ETH" },
    { "chain": "ETH", "asset": "USDC", "address": "0xabc123...", "label": "USDC on ETH" },

    { "chain": "SOL", "asset": "SOL", "address": "SoLanaAddress...", "label": "SOL" }
  ],
  "onRamping": [
    { "provider": "banxa", "label": "Banxa (production)", "enabled": true, "env": "production" },
    { "provider": "kyrrex", "label": "Kyrrex", "enabled": true }
  ],
  "fiat": [
    { "kind": "card", "label": "Card payment (fiat)", "enabled": true }
  ]
}

Example 2 — Crypto disabled for this user

In this case, you might hide crypto checkout, but still show on-ramp and fiat checkout.

Example response

{
  "enabled": ["ramping", "fiat"],
  "methods": [],
  "onRamping": [
    { "provider": "banxa", "label": "Banxa (sandbox)", "enabled": true, "env": "sandbox" },
    { "provider": "kyrrex", "label": "Kyrrex", "enabled": false }
  ],
  "fiat": [
    { "kind": "card", "label": "Card payment (fiat)", "enabled": true }
  ]
}

Example 3 — Ramping enabled, but providers not configured

If your UI supports on-ramping, you can keep the section visible but disable actions for providers with enabled: false.

Example response

{
  "enabled": ["crypto", "ramping", "fiat"],
  "methods": [
    { "chain": "LTC", "asset": "LTC", "address": "ltc1qexample...", "label": "LTC" }
  ],
  "onRamping": [
    { "provider": "banxa", "label": "Banxa", "enabled": false },
    { "provider": "kyrrex", "label": "Kyrrex", "enabled": false }
  ],
  "fiat": [
    { "kind": "card", "label": "Card payment (fiat)", "enabled": true }
  ]
}

Example 4 — Fiat disabled for this user

In this case, you might hide card checkout and only allow crypto and/or ramping.

Example response

{
  "enabled": ["crypto", "ramping"],
  "methods": [
    { "chain": "XRP", "asset": "XRP", "address": "rExample...", "label": "XRP" }
  ],
  "onRamping": [
    { "provider": "banxa", "label": "Banxa (production)", "enabled": true, "env": "production" },
    { "provider": "kyrrex", "label": "Kyrrex", "enabled": true }
  ],
  "fiat": []
}