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

# ramps.noah.getPayoutChannels

> List Noah payout channels matching the supplied filters.

## Function Signature

```dart theme={null}
Future<NoahGetPayoutChannelsResponse> getPayoutChannels(NoahGetPayoutChannelsRequest request)
```

## Description

Returns the payout rails available for a given crypto asset. Only `cryptoCurrency` is required; `country` and `fiatCurrency` narrow the results, and `fiatAmount` refines channel availability and pre-calculated fees.

Results are paginated. Pass the `pageToken` from a previous response to fetch the next page.

## Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `request.cryptoCurrency` | `String` | Yes | Crypto asset code for the payout leg. |
| `request.country` | `String?` | No | ISO country code, for example `US`. |
| `request.fiatCurrency` | `String?` | No | Fiat currency for the payout. |
| `request.fiatAmount` | `String?` | No | Amount string used for filtering and pre-calculated fees. |
| `request.paymentMethodId` | `String?` | No | Filter to channels compatible with a saved payment method. |
| `request.pageSize` | `int?` | No | Page size between 1 and 100, validated server-side. |
| `request.pageToken` | `String?` | No | Pagination cursor from a previous response's `data.pageToken`. |

## Returns

**`NoahGetPayoutChannelsResponse`** - An envelope containing:

| Property | Type | Description |
| - | - | - |
| `data` | `NoahGetPayoutChannelsData` | The response payload. |
| `metadataJson` | `String?` | JSON-encoded response metadata. Read it decoded through the `metadata` getter. |

`NoahGetPayoutChannelsData`:

| Property | Type | Description |
| - | - | - |
| `items` | `List<NoahChannel?>` | Matching payout channels. |
| `pageToken` | `String?` | Cursor for the next page, when more results exist. |

`NoahChannel`:

| Property | Type | Description |
| - | - | - |
| `id` | `String` | Channel identifier, used as `channelId` in later calls. |
| `paymentMethodCategory` | `String` | Broad grouping such as `Bank`, `Card`, or `Identifier`. |
| `paymentMethodType` | `String` | Payment rail type, for example `BankSepa` or `IdentifierPix`. |
| `fiatCurrency` | `String` | Fiat currency code. |
| `country` | `String` | ISO country code. |
| `limits` | `NoahChannelLimits` | `minLimit: String` and optional `maxLimit: String?`. |
| `rate` | `String` | Exchange rate as a string. |
| `processingSeconds` | `int` | Estimated settlement time in seconds. |
| `calculated` | `NoahChannelCalculated?` | Pre-calculated values — `totalFee: String`. |
| `paymentMethods` | `List<NoahChannelPaymentMethodDisplay?>?` | Payment methods associated with the channel, when returned by Noah. |
| `processingTier` | `String?` | Settlement speed tier such as `Standard` or `Priority`. |
| `formSchema` | `Map<String, dynamic>?` | Getter: the inline JSON Schema for the channel's payout form, decoded from `formSchemaJson`. `null` when absent or malformed. |
| `formSchemaJson` | `String?` | The raw JSON-encoded form schema. Prefer the `formSchema` getter. |
| `formMetadata` | `NoahFormMetadata?` | Schema metadata — `contentHash: String`. |
| `issuer` | `String?` | Issuer identifier. |

<Tip>
  When a channel already carries a `formSchema`, use it directly instead of calling [`getPayoutChannelForm`](./noah-getpayoutchannelform) — it saves a round-trip.
</Tip>

## Example

```dart theme={null}
import 'package:portal_flutter/portal_flutter.dart';

final portal = Portal();

try {
  final response = await portal.ramps.noah.getPayoutChannels(
    NoahGetPayoutChannelsRequest(
      cryptoCurrency: 'USDC_TEST',
      country: 'US',
      fiatCurrency: 'USD',
      fiatAmount: '10',
      pageSize: 10,
    ),
  );

  for (final channel in response.data.items.whereType<NoahChannel>()) {
    print('${channel.id} ${channel.paymentMethodType} ${channel.rate} ${channel.limits.minLimit}');
  }

  final next = response.data.pageToken;
  if (next != null) {
    print('Next page token: $next');
  }
} on PortalException catch (e) {
  print('getPayoutChannels failed: [${e.code}] ${e.message}');
}
```

## Errors

| Code | Description |
| - | - |
| `NOT_INITIALIZED` | Portal was not initialized |
| `NOAH_GET_PAYOUT_CHANNELS_ERROR` | Failed to get payout channels — for example an invalid `pageSize` or an unsupported `cryptoCurrency` |

## Related

* [Noah virtual accounts and payouts guide](../guide/noah)
* [ramps.noah.getPayoutChannelForm](./noah-getpayoutchannelform)
* [ramps.noah.getPayoutQuote](./noah-getpayoutquote)
* [Noah payouts workflow](/integrations/On-Off-Ramp/noah-payouts)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.