> ## 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.

# getPayoutChannels

> Lists Noah payout channels matching the supplied filters.

## Function Signature

```swift theme={null}
public func getPayoutChannels(request: NoahGetPayoutChannelsRequest) async throws -> NoahGetPayoutChannelsResponse
```

## 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.       |
| `metadata` | `NoahResponseMetadata?`     | Freeform response metadata. |

`NoahGetPayoutChannelsData`:

| Property    | Type            | Description                                        |
| ----------- | --------------- | -------------------------------------------------- |
| `items`     | `[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`        | `[NoahChannelPaymentMethodDisplay]?` | Recent payment methods, only populated when a customer id was supplied. |
| `processingTier`        | `String?`                            | Settlement speed tier such as `Standard` or `Priority`.                 |
| `formSchema`            | `[String: AnyCodable]?`              | Inline JSON Schema for the channel's payout form, when available.       |
| `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`](./noahgetpayoutchannelform) — it saves a round-trip.
</Tip>

## Example

```swift theme={null}
import PortalSwift

do {
  let response = try await portal.ramps.noah.getPayoutChannels(
    request: NoahGetPayoutChannelsRequest(
      cryptoCurrency: "USDC_TEST",
      country: "US",
      fiatCurrency: "USD",
      fiatAmount: "10",
      pageSize: 10
    )
  )

  for channel in response.data.items {
    print(channel.id, channel.paymentMethodType, channel.rate, channel.limits.minLimit)
  }

  if let next = response.data.pageToken {
    print("Next page token: \(next)")
  }
} catch {
  print("getPayoutChannels failed: \(error)")
}
```

## Errors

| Error                                           | Description                                                                |
| ----------------------------------------------- | -------------------------------------------------------------------------- |
| `PortalRequestsError.unauthorized`              | Authentication failed (401).                                               |
| `PortalRequestsError.clientError`               | Client error (4xx). An invalid `pageSize` or unsupported `cryptoCurrency`. |
| `PortalRequestsError.internalServerError`       | Server error (5xx).                                                        |
| `PortalRequestsError.couldNotParseHttpResponse` | The response could not be parsed.                                          |
| `URLError.badURL`                               | The request URL could not be built.                                        |

## Related

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