> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iterapay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Methods: Supported Cryptocurrencies

> Payment methods are the cryptocurrencies IteraPay supports. Each has an integer ID you supply when creating invoices and retrieving deposit addresses.

A payment method in IteraPay represents a specific cryptocurrency that your merchant account can accept. Each payment method maps to a particular token on a particular blockchain — so USDT on the TRON network (USDT-TRC20) and USDT on Ethereum (USDT-ERC20) are separate payment methods with separate IDs, separate deposit addresses, and separate balances. When you create an invoice, you specify the payment method ID to tell IteraPay which token and network your customer should pay on.

## Listing available payment methods

To see all payment methods currently supported by IteraPay, call the payment methods endpoint. This endpoint is not scoped to a specific merchant, but does require authentication:

```http theme={null}
GET /payment_methods
```

**Example response:**

```json theme={null}
[
  {
    "id": 1,
    "name": "USDT-TRC20",
    "network": "TRON",
    "ticker": "USDT"
  },
  {
    "id": 2,
    "name": "USDT-ERC20",
    "network": "Ethereum",
    "ticker": "USDT"
  },
  {
    "id": 3,
    "name": "USDC-ERC20",
    "network": "Ethereum",
    "ticker": "USDC"
  }
]
```

<Info>
  Payment method IDs are stable integers. Cache this list in your application rather than calling the endpoint on every request. Check periodically for newly added methods.
</Info>

## Using method IDs

The integer `id` from the payment methods list is the value you supply as `methodID` whenever you interact with invoices or addresses. You use it in three places:

**Creating an invoice** — specify which cryptocurrency the invoice should accept:

```http theme={null}
POST /merchants/{merchantID}/invoices
```

```json theme={null}
{
  "type": "onetime",
  "methodID": 1,
  "amount": 100.00
}
```

**Requesting a deposit address** — get the blockchain address for a specific method on an existing invoice:

```http theme={null}
GET /public/invoices/{invoiceID}/method/{methodID}/address
```

**Filtering invoices and transactions** — narrow results to a specific token using the method ID as a filter parameter.

## One address per method per invoice

Each combination of invoice and payment method produces a unique deposit address on the relevant blockchain. When a customer calls the address endpoint for method ID `1` on a given invoice, they always receive the same address — IteraPay provisions it once and reuses it for that invoice/method pair.

This means:

* A customer must send the exact cryptocurrency that corresponds to the method ID. Sending a different token to the same address may result in permanent loss.
* Each invoice can have addresses provisioned for multiple payment methods if you offer a currency choice to your customers.

<Warning>
  Always display the correct network to your customer alongside the deposit address. Sending tokens to an address on the wrong network (for example, sending ERC20 tokens to a TRC20 address) results in lost funds that cannot be recovered.
</Warning>

## Choosing a payment method for your integration

When deciding which payment methods to support, consider:

* **Customer familiarity** — stablecoins like USDT and USDC on major networks are widely held and easy for customers to send
* **Network fees** — TRON (TRC20) typically has lower transaction fees than Ethereum (ERC20), which matters for smaller payment amounts
* **Settlement speed** — different networks have different confirmation times; check your configured limits for minimum collect amounts relative to expected payment sizes

<Tip>
  If you want to give customers a choice of payment method, create one invoice per method or use a reusable invoice and call the address endpoint for each method ID you want to display.
</Tip>

## Related reference

<CardGroup cols={2}>
  <Card title="Create invoice" icon="file-plus" href="/api-reference/invoices/create">
    Create an invoice specifying a payment method ID and USD amount.
  </Card>

  <Card title="Payment info" icon="qrcode" href="/api-reference/invoices/payment-info">
    Retrieve deposit addresses for a given invoice and method.
  </Card>

  <Card title="Invoices" icon="file-invoice-dollar" href="/concepts/invoices">
    Understand how invoices use payment methods to generate deposit addresses.
  </Card>

  <Card title="Accept payments guide" icon="circle-dollar-to-slot" href="/guides/accept-payments">
    Step-by-step walkthrough of creating an invoice and collecting a payment.
  </Card>
</CardGroup>
