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

# Billing

> Read billing history, transactions, plan details, and currencies.

# Billing

Billing endpoints are read-only and organization scoped.

## Authentication & scope

* Header: `X-API-Key: YOUR_API_KEY`
* Required scope: `billing:read`
* Use **API Reference** for interactive Try-it support.

## `GET /v1/billing/credit-history`

Returns paginated credit usage history.

<CodeGroup>
  ```bash Bash theme={null}
  curl -X GET "https://api.indigenius.ai/v1/billing/credit-history?page=1&pageSize=10" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript Node theme={null}
  const response = await fetch(
    'https://api.indigenius.ai/v1/billing/credit-history?page=1&pageSize=10',
    { headers: { 'X-API-Key': process.env.INDIGENIUS_API_KEY } },
  );
  console.log(await response.json());
  ```

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

  response = requests.get(
      "https://api.indigenius.ai/v1/billing/credit-history",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={"page": 1, "pageSize": 10},
      timeout=30,
  )
  print(response.status_code)
  print(response.json())
  ```
</CodeGroup>

### `200 OK`

```json theme={null}
{
  "status": true,
  "message": "Billing history fetched",
  "data": [
    {
      "id": "665e4a34c65bb95f2f2d72e1",
      "cost": 4.2,
      "duration": 86,
      "product": "agent",
      "unit": "audio"
    }
  ],
  "meta": {
    "page": 1,
    "pageSize": 10,
    "totalPages": 1,
    "totalCount": 1
  }
}
```

### Common status codes

* `200` success
* `400` invalid pagination/query
* `403` missing `billing:read`
* `500` server error

## `GET /v1/billing/transactions`

Returns paginated transaction history (top-ups, charges, refunds) for the organization.

<CodeGroup>
  ```bash Bash theme={null}
  curl -X GET "https://api.indigenius.ai/v1/billing/transactions?page=1&pageSize=10" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript Node theme={null}
  const response = await fetch(
    'https://api.indigenius.ai/v1/billing/transactions?page=1&pageSize=10',
    { headers: { 'X-API-Key': process.env.INDIGENIUS_API_KEY } },
  );
  console.log(await response.json());
  ```

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

  response = requests.get(
      "https://api.indigenius.ai/v1/billing/transactions",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={"page": 1, "pageSize": 10},
      timeout=30,
  )
  print(response.status_code)
  print(response.json())
  ```
</CodeGroup>

### `200 OK`

```json theme={null}
{
  "status": true,
  "message": "Transaction history fetched",
  "data": [
    {
      "id": "665e4a34c65bb95f2f2d72e2",
      "amount": 50,
      "status": "success",
      "reference": "tx_ref_1001",
      "createdAt": "2026-06-02T10:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "pageSize": 10,
    "totalPages": 1,
    "totalCount": 1
  }
}
```

### Common status codes

* `200` success
* `400` invalid pagination/query
* `403` missing `billing:read`
* `500` server error

## `GET /v1/billing/plan`

Returns the organization's current plan and pricing metadata.

<CodeGroup>
  ```bash Bash theme={null}
  curl -X GET "https://api.indigenius.ai/v1/billing/plan" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript Node theme={null}
  const response = await fetch('https://api.indigenius.ai/v1/billing/plan', {
    headers: { 'X-API-Key': process.env.INDIGENIUS_API_KEY },
  });
  console.log(await response.json());
  ```

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

  response = requests.get(
      "https://api.indigenius.ai/v1/billing/plan",
      headers={"X-API-Key": "YOUR_API_KEY"},
      timeout=30,
  )
  print(response.status_code)
  print(response.json())
  ```
</CodeGroup>

### `200 OK`

```json theme={null}
{
  "status": true,
  "message": "Billing plan fetched",
  "data": {
    "plan": "Pro",
    "voicePricePerMinute": 0.12,
    "smsPrice": 0.01
  }
}
```

### Common status codes

* `200` success
* `403` missing `billing:read`
* `500` server error

## `GET /v1/billing/currencies`

Returns all currencies supported for billing and top-ups.

<CodeGroup>
  ```bash Bash theme={null}
  curl -X GET "https://api.indigenius.ai/v1/billing/currencies" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript Node theme={null}
  const response = await fetch(
    'https://api.indigenius.ai/v1/billing/currencies',
    { headers: { 'X-API-Key': process.env.INDIGENIUS_API_KEY } },
  );
  console.log(await response.json());
  ```

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

  response = requests.get(
      "https://api.indigenius.ai/v1/billing/currencies",
      headers={"X-API-Key": "YOUR_API_KEY"},
      timeout=30,
  )
  print(response.status_code)
  print(response.json())
  ```
</CodeGroup>

### `200 OK`

```json theme={null}
{
  "status": true,
  "message": "Currencies fetched",
  "data": [
    { "code": "USD", "symbol": "$" },
    { "code": "NGN", "symbol": "₦" }
  ]
}
```

### Common status codes

* `200` success
* `403` missing `billing:read`
* `500` server error
