---
updatedAt: 2025-11-19T12:24:31.000Z
agentTools:
  projectIndex: https://due.readme.io/llms.txt
---

# Rails and Channels

## Overview

**Rails** define the underlying transfer networks and methods available for moving money, while **channels** represent specific implementations of those rails with pricing, limits, and operational parameters.

## Key Concepts

### Rails

A rail represents a payment network or transfer mechanism with standardized characteristics:

* **Bank networks**: SEPA, SWIFT, ACH, Faster Payments
* **Blockchain networks**: Ethereum, Tron, Polygon, Base
* **Local payment systems**: PIX (Brazil), SPEI (Mexico), regional networks
* **Processing speed**: From instant to several business days
* **Schema requirements**: Technical format specifications for account details

### Channels

A channel is a specific implementation of a rail with operational parameters:

* **Currency support**: Which currency the channel processes
* **Fee structure**: Basis points (bps) + fixed fees
* **Transaction limits**: Minimum and maximum amounts
* **Transfer direction**: Deposits, withdrawals, or both
* **KYC requirements**: Identity verification levels needed
* **Purpose Codes**:  Which purpose codes are available and required for transfer creation

### Channel Types

* **`withdrawal`**: Send money out to external accounts
* **`deposit`**: Receive money with a fixed quote (time-limited)
* **`static_deposit`**: Receive money via virtual account (no quote needed)

***

## Get Available Channels

Retrieve all enabled payment channels with their specifications and pricing.

```http
GET /v1/channels
```

### Response

Returns an array of available payment channels with their supported rails, currencies, fees, and capabilities.

```json
{
  "channels": [
    {
      "rail": "sepa",
      "currencyCode": "EUR",
      "feeBps": 36,
      "feeFixed": "0.90",
      "type": "withdrawal",
      "kycLevels": [],
      "railSettings": {
        "speed": "Instant",
        "memoConfig": {
          "maxCharacters": 35,
          "minCharacters": 6
        },
        "schemas": ["bank_sepa"]
      }
    },
    {
      "rail": "ach",
      "currency_code": "USD",
      "feeBps": 30,
      "feeFixed": "0.50", 
      "type": "withdrawal",
      "kycLevels": [],
      "railSettings": {
        "speed": "1-2 days",
        "memoConfig": {
          "maxCharacters": 10,
          "minCharacters": 0
        },
        "schemas": ["bank_us"]
      },
      "purposeCodes": {
        "any": ["OTHER"],
        "individual": ["FAMILY_SUPPORT"],
        "business": ["LOAN_PAYMENT"] 
      }
    },
    {
      "rail": "ethereum",
      "currencyCode": "USDC",
      "feeBps": 0,
      "feeFixed": "0.00",
      "type": "withdrawal", 
      "kycLevels": [],
      "railSettings": {
        "speed": "Instant",
        "memoConfig": null,
        "schemas": ["evm"]
      }
    }
  ]
}
```

### Response Fields

| Field          | Type    | Description                                                |
| -------------- | ------- | ---------------------------------------------------------- |
| `rail`         | string  | Payment rail identifier (e.g., "sepa", "ach", "tron")      |
| `currencyCode` | string  | ISO 4217 currency code or crypto symbol                    |
| `feeBps`       | integer | Fee in basis points (1 bps = 0.01%)                        |
| `feeFixed`     | string  | Fixed fee amount in the channel's currency                 |
| `type`         | string  | Channel type: `withdrawal`, `deposit`, or `static_deposit` |
| `kycLevels`    | array   | Required KYC verification levels                           |
| `railSettings` | object  | Rail-specific configuration and capabilities               |
| `purposeCodes` | object  | Available transfer purpose codes                           |

<br />

### Rail Settings

| Field        | Type         | Description                      |
| ------------ | ------------ | -------------------------------- |
| `speed`      | string       | Expected processing time         |
| `memoConfig` | object\|null | Payment reference requirements   |
| `schemas`    | array        | Supported account detail formats |

<br />

### Purpose Codes

| Field        | Type  | Description                               |
| ------------ | ----- | ----------------------------------------- |
| `any`        | array | Purpose codes for any type of destination |
| `individual` | array | Purpose codes for individual recipients   |
| `business`   | array | Purpose codes for business recipients     |

<br />

### Memo Configuration

| Field           | Type    | Description               |
| --------------- | ------- | ------------------------- |
| `maxCharacters` | integer | Maximum memo length       |
| `minCharacters` | integer | Minimum memo length       |
| `required`      | boolean | Whether memo is mandatory |

***

## Available Payment Rails

The API supports multiple payment networks including:

* **Bank transfers**: SEPA (Europe), ACH/Wire (US), Faster Payments (UK), SWIFT (Global)
* **Local networks**: PIX (Brazil), SPEI (Mexico), MENA (Middle East), various Asian/African systems
* **Cryptocurrency**: Ethereum-compatible networks (USDC), Tron (USDT)

Each rail has different processing speeds, geographic coverage, and currency support. Use the `/channels` endpoint to see the complete list of available rails and their current specifications.

***

## Account Detail Schemas

Different payment rails require specific account detail formats when creating quotes and transfers. The `schemas` field in each channel's `rail_settings` indicates which formats are accepted for that rail.

For detailed information on schema formats, please see **[Schema](/schema)**.