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

# Payment Methods

> List your venue payment method catalog

## Overview

`GET /payment-methods` returns the payment method catalog of your venue, in display order. Use it to resolve the `method_id` carried by payments in the [REST API](/api-reference/payments) and the [`payment.*` webhooks](/api-reference/webhooks/payments).

Each venue manages its own catalog of methods. **Archived** methods are included too - they are no longer selectable in BookingShake but remain resolvable for existing payments.

<Note>
  The whole catalog is returned in one call - no pagination. The catalog is small (typically under 20 entries) and changes rarely: it is safe to cache it on your side and refresh lazily when you encounter an unknown `method_id`.
</Note>

## Authentication

All requests require a Bearer token (your BookingShake API key):

```
Authorization: Bearer YOUR_API_KEY
```

## List payment methods

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.bookingshake.io/api/payment-methods \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const res = await fetch("https://api.bookingshake.io/api/payment-methods", {
    headers: { Authorization: `Bearer ${process.env.BOOKINGSHAKE_API_KEY}` },
  });
  const { data: paymentMethods } = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.get(
      "https://api.bookingshake.io/api/payment-methods",
      headers={"Authorization": f"Bearer {os.environ['BOOKINGSHAKE_API_KEY']}"},
  )
  payment_methods = res.json()["data"]
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init("https://api.bookingshake.io/api/payment-methods");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . getenv("BOOKINGSHAKE_API_KEY"),
  ]);
  $payment_methods = json_decode(curl_exec($ch), true)["data"];
  curl_close($ch);
  ```
</CodeGroup>

The catalog is returned wrapped in the standard `{ message, data }` envelope, where `data` is an array of payment method objects.

```json theme={null}
{
  "message": "success",
  "data": [
    {
      "id": "wire_transfer",
      "label": "Virement",
      "locale": [{ "lang": "en", "value": "Bank transfer" }],
      "archived": false
    },
    {
      "id": "c2f0a1d4-9b7e-4f7c-8d2a-1e5b6a3c9f01",
      "label": "Chèque ANCV",
      "locale": [],
      "archived": false
    }
  ]
}
```

## Fields

| Field      | Type    | Description                                                                                           |
| ---------- | ------- | ----------------------------------------------------------------------------------------------------- |
| `id`       | string  | Stable method ID - the value carried by the `method_id` field of payments                             |
| `label`    | string  | Base label                                                                                            |
| `locale`   | array   | Translations of the label, `{ lang, value }`                                                          |
| `archived` | boolean | Archived methods are no longer selectable in BookingShake but remain resolvable for existing payments |

<Warning>
  Payments recorded before the catalog was introduced (mid-2026) carry `method_id: null`.
</Warning>

## Errors

| Status | Meaning                                                                  |
| ------ | ------------------------------------------------------------------------ |
| `400`  | Missing/invalid token                                                    |
| `429`  | [Rate limit](/api-reference/rate-limiting) exceeded (60 requests/minute) |
| `500`  | Internal server error                                                    |

## Next Steps

<CardGroup cols={2}>
  <Card title="Payments" icon="money-bill-transfer" href="/api-reference/payments">
    Retrieve payments and their `method_id`
  </Card>

  <Card title="Payment Events" icon="credit-card" href="/api-reference/webhooks/payments">
    Receive real-time notifications on payment changes
  </Card>
</CardGroup>
