---
description: "This endpoint retrieves a paginated list of payment methods for a specific customer."
title: "Payment Methods"
---

# Payment Methods

> This endpoint retrieves a paginated list of payment methods for a specific customer.

```http
GET /payment-methods
```

- `https://api.sandbox.noah.com/v1/payment-methods` — V1 Sandbox Server
- `https://api.noah.com/v1/payment-methods` — V1 Production Server

## Authentication

- `X-Api-Key`: Your Noah API key. Required on all requests. See [API Keys](/api-concepts/authentication/api).
- `Api-Signature`: Digitally signed JWT used to verify request authenticity. Optional in sandbox when your API key has no associated signing public key; required in production for all requests. If sent, the signature is always validated. See [Request Signing](/api-concepts/authentication/signing).

## Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `CustomerID` | string | Yes | A unique ID which identifies the customer in the Business' internal system and in NOAH. (length 1-42) |
| `PageSize` | integer | No | (range 1-100; default `20`) |
| `PageToken` | string | No |  |
| `Capability` | `PayoutFrom` \| `PayinTo` \| `PayoutTo` | No | Filter payment methods by capability Capability filter for payment methods: * PayoutFrom - Methods used to send money out of the system (system-generated) * PayoutTo - Methods used to send money out of the system (user-supplied) * PayinTo - Methods used to submit money into the system (user-supplied, excludes system-generated methods like virtual accounts) |

## Responses

### 200 — List of fiat payment methods

#### `application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Items` | object[] | Yes |  |
| `Items[].ID` | string | Yes |  |
| `Items[].CustomerID` | string | No | A unique ID which identifies the customer in the Business' internal system and in NOAH. (length 1-42) |
| `Items[].Country` | string | Yes | ISO 3166-1 alpha-2 country code. |
| `Items[].PaymentMethodCategory` | string | Yes | Categorizes one or more `PaymentMethodType`s into broader groups. Useful for listing channels, displaying payment methods: * Bank * Card * Identifier |
| `Items[].DisplayDetails` | FiatPaymentMethodBankDisplay \| FiatPaymentMethodCardDisplay \| FiatPaymentMethodIdentifierDisplay | Yes | Contains information to display each payment method, with fields tailored to the specific type (e.g., last four digits or account number) to help identify the payment method. (discriminated by `Type`) |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay]` | object | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].Type` | `FiatPaymentMethodBankDisplay` | Yes |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].AccountNumber` | string | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankCode` | string | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].RoutingNumber` | string | No | The routing number of the sender's financial institution (e.g., ODFI routing number for ACH deposits). |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].SwiftCode` | string | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankingSystems` | string[] | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankName` | string | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress` | object | No | Physical postal address. All string fields must be printable ASCII. State and PostCode are required for every country. See [Address Validation](/api-concepts/address-validation) for country-specific rules and payment-form differences. |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.Street` | string | Yes | Street: the primary name of an address's street. Printable ASCII only. (length 2-200) |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.Street2` | string | No | Street2: the secondary name of an address's street. Optional. Printable ASCII only. (length 0-200) |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.City` | string | Yes | City: name of an address's city or town. Printable ASCII only. (length 1-100) |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.PostCode` | string | Yes | PostCode: the address's postcode or ZIP code. Required for all countries (1-20 characters). Use the format from the customer's official documents. Placeholder values such as 00000 or NA are not accepted. (length 1-20) |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.State` | string | Yes | State: the address's state, province, or county. Required for all countries (1-100 characters). For USA and Canada, use the ISO 3166-2 subdivision code as two uppercase letters (e.g. CA). For other countries, use the local administrative division name. Placeholders such as NA or None are not accepted. (length 1-100) |
| `Items[].DisplayDetails[FiatPaymentMethodBankDisplay].BankAddress.Country` | string | Yes | ISO 3166-1 alpha-2 country code. |
| `Items[].DisplayDetails[FiatPaymentMethodCardDisplay]` | object | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodCardDisplay].Type` | `FiatPaymentMethodCardDisplay` | Yes |  |
| `Items[].DisplayDetails[FiatPaymentMethodCardDisplay].Last4` | string | Yes |  |
| `Items[].DisplayDetails[FiatPaymentMethodCardDisplay].Scheme` | string | Yes | The card scheme: * Mastercard * Visa |
| `Items[].DisplayDetails[FiatPaymentMethodIdentifierDisplay]` | object | No |  |
| `Items[].DisplayDetails[FiatPaymentMethodIdentifierDisplay].Type` | `FiatPaymentMethodIdentifierDisplay` | Yes |  |
| `Items[].DisplayDetails[FiatPaymentMethodIdentifierDisplay].IdentifierType` | string | Yes | Identifier type: * PhoneNumber * Email * TaxID |
| `Items[].DisplayDetails[FiatPaymentMethodIdentifierDisplay].Identifier` | string | Yes |  |
| `Items[].Capabilities` | object | No |  |
| `Items[].Capabilities.PayoutFrom` | boolean | Yes | internally generated, can take money out of the system |
| `Items[].Capabilities.PayinTo` | boolean | Yes | user supplied, can add money into the system |
| `Items[].Capabilities.PayoutTo` | boolean | Yes | user supplied, can take money out of the system |
| `Items[].AccountHolderDetails` | object | No | Details of the account holder associated with the payment method. |
| `Items[].AccountHolderDetails.Type` | `Individual` \| `Business` | No | Type of account holder. |
| `Items[].AccountHolderDetails.Name` | object | No | Name of the individual account holder. Used when Type is Individual. |
| `Items[].AccountHolderDetails.Name.FirstName` | string | Yes | user's first name (length 1-50) |
| `Items[].AccountHolderDetails.Name.LastName` | string | Yes | user's last name (family name) (length 1-50) |
| `Items[].AccountHolderDetails.Name.MiddleName` | string | No | user's middle name (length 1-50) |
| `Items[].AccountHolderDetails.BusinessName` | string | No | Name of the business account holder. Used when Type is Business. |
| `Items[].IssuerDetails` | object | No | Details of the issuer of the payment method (e.g. the bank for bank transfers). |
| `Items[].IssuerDetails.Name` | string | No | Name of the issuer (e.g. the bank or financial institution). |
| `PageToken` | string | No |  |

### 400 — Bad request

### 401 — Client is not authorized to perform this action

### 500 — Internal server error

Error responses share one `Error` envelope across the whole API. See https://docs.noah.com/api-concepts/errors.md for its fields, the `Type` values, and the field-level validation details in `RequestExtension` and `DenyExtension`.

## See also

- Rendered reference: https://docs.noah.com/api-reference/payment-methods
- OpenAPI document: https://docs.noah.com/files/oas-schema.generated.json
