# List payment methods

`GET https://app.shuttleglobal.com/c/api/instances/{instance_key}/payment_methods`

Search and list payment method objects with various filtering criteria.

## Authentication

- basicAuth: Basic Authentication using secret key
- bearerAuth: OAuth 2.0 Bearer Token Authentication

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `criteria` | query | string | no | Search criteria for filtering payment methods. Available fields: `id`, `account`, `bin`, `code`, `created`, `expiry`, `failing_since`, `gateway`, `last4`, `last_used`, `mandate_reference`, `source`, `status`, `sub_status`, `token`, `type`, `updated` Examples: - `account=acc_12345_67890` - `status=ACTIVE` - `type=VISA` - `expiry<>2024-01;2024-12` |
| `order` | query | string | no | Sort order for results. Supports any field that criteria supports. Defaults to `created:desc` if not specified. Append `:desc` for descending order. Separate multiple order fields with commas. Examples: - `order=last_used:desc` - `order=type,created:desc` |
| `expand` | query | string | no | Fields to expand into full objects. Separate multiple fields with commas. Available fields: - account (account object) - bin (card BIN object) - gateway (gateway object) - created_session (session object) - updated_session (session object) Example: `expand=account,gateway` |
| `limit` | query | integer | no | Number of records to return: 20 if not set, at most 1000. |
| `offset` | query | integer | no | Number of records to skip before the first one returned. `offset` + `limit` can't exceed 5000; to read further, page by a field such as `created` instead. See [Paging through results](/merchants/reference/paging/). |

## Responses

### 200: List of payment methods

```json
{
  "payment_methods": [
    {
      "id": "string",
      "account": "string",
      "address": {},
      "advanced_notice_hours": 180,
      "archived": "2026-01-01T12:00:00Z",
      "authorisation_url": "string",
      "code": "string",
      "created": "2026-01-01T12:00:00Z",
      "created_session": "string",
      "expiry": "string",
      "failing_reason": "string",
      "failing_since": "2026-01-01T12:00:00Z",
      "gateway": "string",
      "gateway_group": "string",
      "gateway_status": "string",
      "last4": "string",
      "last_used": "2026-01-01T12:00:00Z",
      "mandate_id": "string",
      "mandate_link": "string",
      "mandate_reference": "string",
      "mandate_text": "string",
      "name": "string",
      "requires_cvc": true,
      "source": "MOTO",
      "status": "ACTIVE",
      "sub_status": "string",
      "sub_status_reason": "string",
      "tags": "string",
      "metadata": {},
      "bin": "string",
      "card_holder_name": "string",
      "eci": "string",
      "network_token": true,
      "source_type": "string",
      "token": "string",
      "type": "string",
      "updated_session": "string",
      "v": 0
    }
  ],
  "meta": {
    "limit": 0,
    "offset": 0,
    "total": 0
  }
}
```

### 400: Bad request

```json
{
  "code": "string",
  "message": "string"
}
```

### 401: Authentication required

```json
{
  "code": "UNAUTHORIZED",
  "message": "Unauthorised"
}
```

### 404: Resource not found

```json
{
  "code": "string",
  "message": "string"
}
```

### 500: Internal server error

```json
{
  "error": {
    "type": "string",
    "message": "string"
  }
}
```

## Example request

```sh
curl --request GET \
  --url https://app.shuttleglobal.com/c/api/instances/YOUR_INSTANCE_KEY/payment_methods \
  --header 'Authorization: Basic <base64 of SECRET_KEY:>'
```

Reference page: https://docs.shuttleglobal.com/merchants/reference/operations/listpaymentmethods/