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

# Customer Tools

> Manage customers and their financial transactions

The Bizzy MCP server provides 10 tools for managing customers and their
transactions. These tools are organized into two categories: customers and
customer transactions.

## Customers

Core tools for creating, reading, updating, and deleting customer records.

### createCustomer

Create a new customer record with business association and contact information.

**Permission:** `customers:write`

**Parameters:**

| Name            | Type                  | Required | Description                                            |
| --------------- | --------------------- | -------- | ------------------------------------------------------ |
| `businessId`    | string (UUID)         | Yes      | The ID of the business this customer belongs to        |
| `type`          | string                | Yes      | Customer type (e.g., individual, business, enterprise) |
| `contactId`     | string (UUID) \| null | No       | Optional reference to an existing contact record       |
| `name`          | string \| null        | No       | Customer display name                                  |
| `email`         | string \| null        | No       | Primary email address                                  |
| `phone`         | string \| null        | No       | Primary phone number                                   |
| `notes`         | string \| null        | No       | Internal notes and comments about the customer         |
| `status`        | string \| null        | No       | Customer status (e.g., active, inactive, pending)      |
| `customerSince` | string \| null        | No       | Date when the customer relationship began (ISO 8601)   |

**Returns:** The created customer object.

***

### getCustomer

Get a specific customer by ID.

**Permission:** `customers:read`

**Parameters:**

| Name | Type          | Required | Description                        |
| ---- | ------------- | -------- | ---------------------------------- |
| `id` | string (UUID) | Yes      | The ID of the customer to retrieve |

**Returns:** Customer object, or `null` if not found.

***

### listCustomers

List all customers for the organization with pagination.

**Permission:** `customers:read`

**Parameters:**

| Name        | Type   | Required | Default | Description                                   |
| ----------- | ------ | -------- | ------- | --------------------------------------------- |
| `limit`     | number | No       | 10      | Number of customers to return (1-100)         |
| `offset`    | number | No       | 0       | Number of customers to skip for pagination    |
| `sortOrder` | string | No       | "desc"  | Sort order by creation date ("asc" or "desc") |

**Returns:**

```json theme={null}
{
  "customers": [...],
  "count": 10,
  "limit": 10,
  "offset": 0
}
```

***

### updateCustomer

Update an existing customer record.

**Permission:** `customers:write`

**Parameters:**

| Name            | Type                  | Required | Description                                            |
| --------------- | --------------------- | -------- | ------------------------------------------------------ |
| `id`            | string (UUID)         | Yes      | The ID of the customer to update                       |
| `businessId`    | string (UUID)         | No       | The ID of the business this customer belongs to        |
| `contactId`     | string (UUID) \| null | No       | Reference to an existing contact record                |
| `type`          | string                | No       | Customer type (e.g., individual, business, enterprise) |
| `name`          | string \| null        | No       | Customer display name                                  |
| `email`         | string \| null        | No       | Primary email address                                  |
| `phone`         | string \| null        | No       | Primary phone number                                   |
| `notes`         | string \| null        | No       | Internal notes and comments about the customer         |
| `status`        | string \| null        | No       | Customer status (e.g., active, inactive, pending)      |
| `customerSince` | string \| null        | No       | Date when the customer relationship began (ISO 8601)   |

**Returns:** The updated customer object.

***

### deleteCustomer

Delete a customer (soft delete).

**Permission:** `customers:delete`

**Parameters:**

| Name | Type          | Required | Description                      |
| ---- | ------------- | -------- | -------------------------------- |
| `id` | string (UUID) | Yes      | The ID of the customer to delete |

**Returns:** The deleted customer object.

***

## Customer Transactions

Tools for recording and managing financial transactions associated with
customers.

### createCustomerTransaction

Create a new customer transaction to record a financial activity.

**Permission:** `customers.transactions:write`

**Parameters:**

| Name              | Type           | Required | Description                                                   |
| ----------------- | -------------- | -------- | ------------------------------------------------------------- |
| `customerId`      | string (UUID)  | Yes      | UUID of the customer this transaction belongs to              |
| `businessId`      | string (UUID)  | Yes      | UUID of the business associated with the transaction          |
| `amount`          | string         | Yes      | Transaction amount as a string (to handle decimal precision)  |
| `currency`        | string         | Yes      | Currency code (e.g., USD, EUR)                                |
| `status`          | string         | Yes      | Transaction status (e.g., pending, completed, failed)         |
| `type`            | string         | Yes      | Transaction type (e.g., purchase, refund, subscription)       |
| `description`     | string \| null | No       | Optional description of the transaction                       |
| `transactionDate` | string \| null | No       | Optional date when the transaction occurred (ISO 8601 format) |

**Returns:** The created customer transaction object.

***

### getCustomerTransaction

Get a specific customer transaction by its ID.

**Permission:** `customers.transactions:read`

**Parameters:**

| Name            | Type          | Required | Description                                  |
| --------------- | ------------- | -------- | -------------------------------------------- |
| `transactionId` | string (UUID) | Yes      | UUID of the customer transaction to retrieve |

**Returns:** Customer transaction object, or `null` if not found.

***

### listCustomerTransactions

List all transactions for a specific customer with pagination support.

**Permission:** `customers.transactions:read`

**Parameters:**

| Name         | Type          | Required | Default | Description                                         |
| ------------ | ------------- | -------- | ------- | --------------------------------------------------- |
| `customerId` | string (UUID) | Yes      | -       | UUID of the customer whose transactions to retrieve |
| `limit`      | number        | No       | 10      | Maximum number of items to return (1-100)           |
| `offset`     | number        | No       | 0       | Number of items to skip for pagination              |
| `sortOrder`  | string        | No       | "desc"  | Sort order by creation date ("asc" or "desc")       |

**Returns:**

```json theme={null}
{
  "transactions": [...],
  "count": 25,
  "limit": 10,
  "offset": 0
}
```

***

### updateCustomerTransaction

Update an existing customer transaction - all fields are optional except
`transactionId`.

**Permission:** `customers.transactions:write`

**Parameters:**

| Name              | Type           | Required | Description                                                             |
| ----------------- | -------------- | -------- | ----------------------------------------------------------------------- |
| `transactionId`   | string (UUID)  | Yes      | UUID of the customer transaction to update                              |
| `businessId`      | string (UUID)  | No       | Update the business associated with the transaction                     |
| `amount`          | string         | No       | Update the transaction amount as a string (to handle decimal precision) |
| `currency`        | string         | No       | Update the currency code (e.g., USD, EUR)                               |
| `status`          | string         | No       | Update the transaction status (e.g., pending, completed, failed)        |
| `type`            | string         | No       | Update the transaction type (e.g., purchase, refund, subscription)      |
| `description`     | string \| null | No       | Update the description of the transaction                               |
| `transactionDate` | string \| null | No       | Update the date when the transaction occurred (ISO 8601 format)         |

**Returns:** The updated customer transaction object.

***

### deleteCustomerTransaction

Delete a customer transaction (soft delete).

**Permission:** `customers.transactions:delete`

**Parameters:**

| Name            | Type          | Required | Description                                |
| --------------- | ------------- | -------- | ------------------------------------------ |
| `transactionId` | string (UUID) | Yes      | UUID of the customer transaction to delete |

**Returns:** The deleted customer transaction object.

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Contact Tools" icon="address-book" href="/mcp-server/tools/contacts">
    Manage contacts that may be linked to customers
  </Card>

  <Card title="Authentication" icon="key" href="/mcp-server/authentication">
    Learn how MCP clients authenticate to the server
  </Card>
</CardGroup>
