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

# GET /v1/billing/methods — List Saved Payment Methods

> Retrieve all payment methods saved to the active organization. Returns masked card details (last 4 digits, expiry) and registered M-Pesa phone numbers.

Retrieve all payment methods saved to the active organization. Each entry is masked — card numbers are truncated to the last four digits and M-Pesa numbers are returned as stored.

## Endpoint

```
GET /v1/billing/methods
```

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token. Format: `Bearer <token>`
</ParamField>

<ParamField header="X-Organization-Id" type="string" required>
  The ID of the organization whose payment methods you want to retrieve.
</ParamField>

## Response

<ResponseField name="success" type="boolean">
  `true` on a successful request.
</ResponseField>

<ResponseField name="data" type="object[]">
  Array of saved payment method objects.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      Unique identifier for the payment method.
    </ResponseField>

    <ResponseField name="channel" type="string">
      Payment channel. One of `card` or `mobile_money`.
    </ResponseField>

    <ResponseField name="cardType" type="string">
      Card type (e.g. `visa`, `mastercard`). `null` for mobile money methods.
    </ResponseField>

    <ResponseField name="last4" type="string">
      Last four digits of the card number. `null` for mobile money methods.
    </ResponseField>

    <ResponseField name="expMonth" type="number">
      Card expiry month. `null` for mobile money methods.
    </ResponseField>

    <ResponseField name="expYear" type="number">
      Card expiry year. `null` for mobile money methods.
    </ResponseField>

    <ResponseField name="network" type="string">
      Network provider (e.g. `mpesa`). `null` for card methods.
    </ResponseField>

    <ResponseField name="phone" type="string">
      Registered M-Pesa phone number. `null` for card methods.
    </ResponseField>
  </Expandable>
</ResponseField>

## Example

```bash theme={null}
curl --request GET \
  --url https://api.nyotaimara.com/v1/billing/methods \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Organization-Id: <org-id>'
```

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": "pm_01j9k2x...",
      "channel": "card",
      "cardType": "visa",
      "last4": "4242",
      "expMonth": 12,
      "expYear": 2027,
      "network": null,
      "phone": null
    },
    {
      "id": "pm_01j9k3y...",
      "channel": "mobile_money",
      "cardType": null,
      "last4": null,
      "expMonth": null,
      "expYear": null,
      "network": "mpesa",
      "phone": "+254712345678"
    }
  ]
}
```
