# RevCent MCP Guide: `GetCustomer`

Brief AI/MCP-focused guide for retrieving one RevCent Customer.

---

## Operation Summary

Operation:

```text
GetCustomer
```

Purpose:

```text
Retrieve the details of a previously created Customer using the Customer ID.
```

A Customer is the primary customer identity record in RevCent. It can connect to sales, product sales, shipments, tax, trials, subscriptions, subscription renewals, credit-card transactions, PayPal transactions, offline payments, pending refunds, chargebacks, fraud detections, AI records, notes, customer groups, products purchased, and customer-card summaries.

Use `GetCustomer` when the exact 20-character Customer ID is known and the user needs to inspect one customer account.

---

## Related Links

| Guide | Link |
|---|---|
| Customer Overview | `https://revcent.com/documentation/markdown/mcp/operation/OverviewCustomer.md` |
| GetCustomers | `https://revcent.com/documentation/markdown/mcp/operation/GetCustomers.md` |
| SearchCustomers | `https://revcent.com/documentation/markdown/mcp/operation/SearchCustomers.md` |
| EditCustomer | `https://revcent.com/documentation/markdown/mcp/operation/EditCustomer.md` |
| EnableCustomer | `https://revcent.com/documentation/markdown/mcp/operation/EnableCustomer.md` |
| DisableCustomer | `https://revcent.com/documentation/markdown/mcp/operation/DisableCustomer.md` |
| BigQueryRunQuery | `https://revcent.com/documentation/markdown/mcp/operation/BigQueryRunQuery.md` |

---

## When to Use

Use `GetCustomer` when:

- the user provides a Customer ID,
- a related record contains a `customer_id`,
- support needs customer contact/status context,
- AI/MCP needs customer groups, notes, metadata, products purchased, or lifetime values,
- the user asks whether a customer is enabled, disabled, or blocked,
- related sales, subscriptions, trials, refunds, transactions, or chargebacks need to be traced.

---

## Input Schema

| Field | Type | Required | Description |
|---|---:|---:|---|
| `customer_id` | string | Yes | 20-character Customer ID. |

Example:

```json
{
  "customer_id": "CCCCCCCCCCCCCCCCCCCC"
}
```

---

## Output Summary

`GetCustomer` can return:

| Field / Area | Meaning |
|---|---|
| Identity | `id`, `created_date_unix`, `updated_date_unix`, `internal_id`. |
| Contact | `first_name`, `last_name`, `company`, `email`, `phone`. |
| Address | `address_line_1`, `address_line_2`, `city`, `state`, `zip`, `country`. |
| Status | `enabled`, `blocked`, `status` (`Enabled`, `Disabled`, `Blocked`). |
| Campaign | `campaign_id`, `campaign_name`. |
| Customer cards | Card ID, type, first 6/BIN, last 4, expiry, default flag. |
| Customer groups | Customer Group IDs and names. |
| Lifetime value | All, Sale, Subscription Renewal, Chargeback, and Fraud Detection summary objects. |
| Notes | Customer notes and related item context. |
| Products purchased | Product ID/name/SKU/internal ID, quantity, average price, gross/refunded amount, purchase count, purchase dates. |
| Metadata | Customer metadata name/value pairs. |
| Related arrays | Sales, Product Sales, Shipping, Tax, Trials, Subscriptions, Renewals, Transactions, PayPal Transactions, Offline Payments, Check Directs, Salvage Transactions, Pending Refunds, Chargebacks, Fraud Detections, API Calls, AI records. |

---

## Related Item Arrays

Use related IDs with the correct detail operation:

| Related Array | Detail Operation |
|---|---|
| `sales` | `GetSale` |
| `product_sales` | `GetProductSale` |
| `shipping` | `GetShipment` |
| `tax` | `GetTax` |
| `trials` | `GetTrial` |
| `subscriptions` | `GetSubscription` |
| `subscription_renewals` | `GetSubscriptionRenewal` |
| `transactions` | `GetTransaction` |
| `paypal_transactions` | `GetPayPalTransaction` |
| `offline_payments` | `GetOfflinePayment` |
| `check_directs` | `GetCheckDirect` |
| `salvage_transactions` | `GetSalvageTransaction` |
| `pending_refunds` | `GetPendingRefund` |
| `chargebacks` | `GetChargeback` |
| `fraud_detections` | `GetFraudDetection` |
| `api_calls` | `GetAPICall` |
| `ai_threads` | `GetAIThread` |
| `ai_assistants` | `GetAIAssistant` |

---

## Customer-Facing AI Verification Warning

Customer records can expose sensitive customer, contact, address, payment-card summary, purchase history, subscription, trial, refund, fraud, chargeback, note, and lifecycle context.

If this operation is used inside a customer-facing AI flow, such as:

- AI Voice Agent,
- public chatbot,
- support chatbot,
- customer portal assistant,
- SMS assistant,
- any visitor-facing AI workflow,

AI/MCP should verify that the visitor is actually the customer, or is otherwise authorized, before providing information or taking action.

Recommended rule:

```text
Do not provide Customer details to a public-facing visitor based only on the Customer ID or a value the visitor supplied.
```

Use a secondary value from the retrieved Customer response to verify identity.

Examples:

| Visitor-Provided Input | Secondary Verification Value |
|---|---|
| Customer ID | Customer email from `GetCustomer.email`. |
| Customer name | Customer email or phone from the retrieved Customer. |
| Phone number | Customer email from the retrieved Customer. |
| Email address | Secondary phone, order-related value, or another record-backed verification value where available. |
| Internal ID / metadata | Customer email or phone from the retrieved Customer. |

Safe flow:

```text
Visitor provides customer/search input
    ↓
AI uses SearchCustomers and/or GetCustomer
    ↓
AI retrieves the Customer
    ↓
AI asks the visitor to verify a secondary value from the retrieved record, such as customer email
    ↓
Only after verification:
        provide limited appropriate details
        or take an allowed action
```

The secondary verification value should come from the retrieved RevCent record, not only from the visitor's original input.

Do not disclose sensitive details such as customer cards beyond safe summary context, full address unless necessary and verified, internal notes, fraud/risk logic, chargeback details, or unrelated order/subscription/refund details unless the visitor is verified and authorized.

For consequential actions, such as editing a customer, disabling/enabling a customer, adding/removing cards, subscription changes, refunds, or customer group changes, require explicit confirmation and follow the relevant operation-specific safety guidance.


---

## Critical Reporting Rule

These Customer lookup/search operations are **not** reporting tools.

Do not use this operation for:

- counting,
- aggregations,
- metrics,
- reporting,
- data mining,
- bulk retrieval,
- broad analysis,
- document property searches,
- customer count reports,
- customer lifetime value reports,
- segmentation reports,
- churn/retention reports,
- acquisition reports,
- campaign/shop/product/customer analytics.

Use:

```text
BigQueryRunQuery
```

for those purposes.

Important AI/MCP behavior:

```text
If AI/MCP intended to use this operation for reporting, metrics, aggregation, or data mining and then realizes BigQueryRunQuery is the correct operation, it does not need to tell the user about the correction.

It should simply use BigQueryRunQuery instead.
```



---

## Correct Use vs Incorrect Use

| User Intent | Correct Action |
|---|---|
| “Show me this Customer ID.” | Use `GetCustomer`. |
| “Is this customer enabled or blocked?” | Use `GetCustomer`. |
| “What products has this customer purchased?” | Use `GetCustomer`; use related records for deeper lifecycle details. |
| “What are this customer’s related subscriptions?” | Use `GetCustomer`, then `GetSubscription` for relevant Subscription IDs. |
| “How many customers do I have?” | Use `BigQueryRunQuery`, not `GetCustomer`. |
| “Show customer lifetime value by campaign.” | Use `BigQueryRunQuery`, not `GetCustomer`. |

---

## Best Practices

1. Use `GetCustomer` only for one known Customer ID.
2. Use `SearchCustomers` when the Customer ID is unknown.
3. Use `GetCustomers` only for bounded operational list retrieval.
4. Use related IDs to retrieve exact Sales, Subscriptions, Trials, Shipments, Transactions, or Refund records when needed.
5. Treat customer cards as sensitive; only disclose limited safe card summary details when verified and appropriate.
6. Verify customer identity before sharing Customer details in customer-facing AI flows.
7. Use `BigQueryRunQuery` for all reporting and analytics.

---

## Final AI/MCP Instruction

Use `GetCustomer` to retrieve one specific Customer by `customer_id`.

In customer-facing AI flows, verify the visitor is related to the Customer record using a secondary value from the retrieved record, such as `customer.email`, before providing details or taking action.

Do not use this operation for reporting, metrics, counting, aggregation, data mining, or broad analysis. If the task is reporting-related, silently use `BigQueryRunQuery` instead.


---
Document Parent Directory
* [Operations](https://revcent.com/documentation/markdown/mcp/operation/index.md) - AI/MCP details and overviews for operations available within the RevCent MCP.