---
title: "Sales"
description: "A non-technical ecosystem overview of Sales in RevCent, focused on how Sales act as the central purchase item that connects Customers, Product Sales, Shipping, Tax, Subscriptions, Trials, Shops, payments, Email Templates, Functions, AI workflows, fulfillment, refunds, attribution, and BigQuery reporting across the RevCent relationship graph."
type: "item"
company: "RevCent"
canonical: "https://revcent.com/documentation/markdown/ecosystem/item/Sale.md"
relationships:
  - name: "Customer"
    url: "https://revcent.com/documentation/markdown/ecosystem/item/Customer.md"
  - name: "Product Sale"
    url: "https://revcent.com/documentation/markdown/ecosystem/item/ProductSale.md"
  - name: "Shipping"
    url: "https://revcent.com/documentation/markdown/ecosystem/item/Shipping.md"
  - name: "Tax"
    url: "https://revcent.com/documentation/markdown/ecosystem/item/Tax.md"
  - name: "Subscription"
    url: "https://revcent.com/documentation/markdown/ecosystem/item/Subscription.md"
  - name: "Trial"
    url: "https://revcent.com/documentation/markdown/ecosystem/item/Trial.md"
technical_links:
  web_app: "https://kb.revcent.com/en/revenue/sale"
  api:
    section: "https://revcent.com/docs/api/v2#section-sales"
    operations:
      - name: "Get Sales"
        operation_id: "GetSales"
        operation: "https://revcent.com/docs/api/v2#operation-GetSales"
        schema: "https://revcent.com/documentation/files/api/operation/GetSales.json"
      - name: "Create A Sale"
        operation_id: "CreateSale"
        operation: "https://revcent.com/docs/api/v2#operation-CreateSale"
        schema: "https://revcent.com/documentation/files/api/operation/CreateSale.json"
      - name: "Get A Sale"
        operation_id: "GetSale"
        operation: "https://revcent.com/docs/api/v2#operation-GetSale"
        schema: "https://revcent.com/documentation/files/api/operation/GetSale.json"
      - name: "Void A Sale"
        operation_id: "VoidSale"
        operation: "https://revcent.com/docs/api/v2#operation-VoidSale"
        schema: "https://revcent.com/documentation/files/api/operation/VoidSale.json"
      - name: "Add Fraud Alert"
        operation_id: "AddFraudAlert"
        operation: "https://revcent.com/docs/api/v2#operation-AddFraudAlert"
        schema: "https://revcent.com/documentation/files/api/operation/AddFraudAlert.json"
      - name: "Remove Fraud Alert"
        operation_id: "RemoveFraudAlert"
        operation: "https://revcent.com/docs/api/v2#operation-RemoveFraudAlert"
        schema: "https://revcent.com/documentation/files/api/operation/RemoveFraudAlert.json"
      - name: "Create A Pending Sale"
        operation_id: "CreatePendingSale"
        operation: "https://revcent.com/docs/api/v2#operation-CreatePendingSale"
        schema: "https://revcent.com/documentation/files/api/operation/CreatePendingSale.json"
      - name: "Update A Pending Sale"
        operation_id: "UpdatePendingSale"
        operation: "https://revcent.com/docs/api/v2#operation-UpdatePendingSale"
        schema: "https://revcent.com/documentation/files/api/operation/UpdatePendingSale.json"
      - name: "Process A Pending Sale"
        operation_id: "ProcessPendingSale"
        operation: "https://revcent.com/docs/api/v2#operation-ProcessPendingSale"
        schema: "https://revcent.com/documentation/files/api/operation/ProcessPendingSale.json"
      - name: "Estimate A Sale"
        operation_id: "EstimateSale"
        operation: "https://revcent.com/docs/api/v2#operation-EstimateSale"
        schema: "https://revcent.com/documentation/files/api/operation/EstimateSale.json"
      - name: "Search Sales"
        operation_id: "SearchSales"
        operation: "https://revcent.com/docs/api/v2#operation-SearchSales"
        schema: "https://revcent.com/documentation/files/api/operation/SearchSales.json"
  mcp:
    overview: "https://revcent.com/documentation/markdown/mcp/operation/OverviewSale.md"
    operations:
      - name: "Get Sales"
        operation_id: "GetSales"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/GetSales.md"
        available_via_ai: true
      - name: "Create A Sale"
        operation_id: "CreateSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/CreateSale.md"
        available_via_ai: true
      - name: "Get A Sale"
        operation_id: "GetSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/GetSale.md"
        available_via_ai: true
      - name: "Void A Sale"
        operation_id: "VoidSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/VoidSale.md"
        available_via_ai: true
      - name: "Add Fraud Alert"
        operation_id: "AddFraudAlert"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/AddFraudAlert.md"
        available_via_ai: true
      - name: "Remove Fraud Alert"
        operation_id: "RemoveFraudAlert"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/RemoveFraudAlert.md"
        available_via_ai: true
      - name: "Create A Pending Sale"
        operation_id: "CreatePendingSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/CreatePendingSale.md"
        available_via_ai: true
      - name: "Update A Pending Sale"
        operation_id: "UpdatePendingSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/UpdatePendingSale.md"
        available_via_ai: true
      - name: "Process A Pending Sale"
        operation_id: "ProcessPendingSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/ProcessPendingSale.md"
        available_via_ai: true
      - name: "Estimate A Sale"
        operation_id: "EstimateSale"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/EstimateSale.md"
        available_via_ai: true
      - name: "Search Sales"
        operation_id: "SearchSales"
        markdown: "https://revcent.com/documentation/markdown/mcp/operation/SearchSales.md"
        available_via_ai: true
  bigquery_schema: "https://revcent.com/documentation/files/bigquery/dataset.json"
  bigquery_tables:
    - "sale"
---

# Sales

Sales are one of the most pivotal items in RevCent.

A Sale represents a customer purchase attempt or purchase event. It is the central record that connects the customer, the products being purchased, the payment path, fulfillment needs, tax, discounts, subscriptions, trials, refunds, support context, automation, reporting, and recovery opportunities.

A Sale is not just a payment record. It is the parent commerce item that explains what happened at checkout and what should happen afterward.

At the simplest level:

```text
Customer attempts or completes a purchase
    ↓
RevCent creates a Sale
    ↓
The Sale connects products, payment, fulfillment, tax, subscriptions, trials, communication, automation, and reporting
```

For ecosystem graphing, Sales are one of the most important nodes because so many other RevCent items either begin with a Sale, attach to a Sale, respond to a Sale, or report from Sale activity.

## Why Sales Are an Item

Sales are an item because they are created from real commerce activity.

A business configures features such as Products, Payment Profiles, Email Templates, Functions, Shops, Tracking Domains, AI Assistants, AI Voice Agents, and Subscription Profiles. Those features help determine what can happen.

A Sale is what happens when a customer actually attempts or completes a purchase.

The distinction is important:

```text
Product = what can be sold
Customer = who is buying
Sale = the purchase event
Product Sale = each line item inside the Sale
Shipping, Tax, Subscription, Trial, Transaction, Refund = downstream records connected to the Sale
```

Sales are historical business records. They show the purchase lifecycle for a customer and the surrounding ecosystem activity that followed.

## Core Purpose

The core purpose of a Sale is to unify the purchase lifecycle.

A Sale gives RevCent and the business a single parent item for understanding:

- Who the customer is.
- What products were purchased.
- Which campaign, shop, or source produced the purchase.
- Which payment path was used.
- Whether the payment succeeded, failed, declined, or remained pending.
- Whether product-level line items were created.
- Whether anything needs to ship.
- Whether tax or discounts were applied.
- Whether a subscription or trial was created.
- Whether a refund, void, chargeback, dispute, or recovery action later occurred.
- Which Email Templates, Functions, AI workflows, or events responded to the Sale.
- How the Sale contributes to reporting, attribution, and revenue analysis.

This makes Sales the operational and analytical center of RevCent commerce.

## Where Sales Fit in the RevCent Ecosystem

Sales sit between the customer and the rest of the commerce lifecycle.

Conceptually:

```text
Customer
    ↓
Sale
    ├─ Product Sales
    ├─ Shipping
    ├─ Tax
    ├─ Discounts
    ├─ Payment records
    ├─ Subscriptions
    ├─ Trials
    ├─ Pending Refunds
    ├─ Metadata
    ├─ Events
    ├─ Email Templates
    ├─ Functions
    ├─ AI Assistants
    ├─ AI Voice Agents
    ├─ Shops
    ├─ Tracking attribution
    └─ BigQuery reporting
```

This is why Sales are pivotal. A Sale is often the item that explains how multiple RevCent features and items connect.

## Technical Links

| Area | Link |
|---|---|
| Web App | `https://kb.revcent.com/en/revenue/sale` |
| API | `https://revcent.com/docs/api/v2#section-sales` |
| MCP | `https://revcent.com/documentation/markdown/mcp/operation/OverviewSale.md` |
| BigQuery Table | `sale` |

These links identify where Sales are documented or represented technically. This ecosystem document stays focused on meaning, purpose, relationships, and business value rather than implementation details.

## How Sales Are Created

Sales can be created from several parts of the RevCent ecosystem.

A Sale may begin from:

- A manual order or internal workflow in the RevCent web app.
- A direct API or MCP workflow.
- A RevCent hosted checkout or hosted purchase flow.
- A WooCommerce store using the RevCent WooCommerce plugin.
- Another third-party shop or external storefront connected to RevCent.
- An AI Assistant workflow that is explicitly configured and permitted to work with Sales.
- An AI Voice Agent helping a customer complete or recover a purchase.
- A pending or multi-step checkout flow that is later processed.

The important non-technical idea is that RevCent can receive purchase activity from many sources and normalize that activity into a Sale record.

That Sale then becomes the common parent item for downstream activity.

## Sales From Shops and WooCommerce

Sales are especially important for businesses running external ecommerce stores.

When a shop is connected to RevCent, such as a WooCommerce store using the RevCent plugin, checkout activity from the shop can create RevCent Sales. Those Sales can then connect the outside store order to RevCent's internal ecosystem.

This helps the business use RevCent for:

- Payment processing or payment tracking.
- Product Sale line-item visibility.
- Customer history.
- Fulfillment and shipping context.
- Tax and discount visibility.
- PayPal, offline, check, or credit card payment context.
- Subscription and trial creation when applicable.
- Email Templates and customer communication.
- Functions and automation.
- AI Assistant and AI Voice Agent workflows.
- BigQuery reporting across shops, campaigns, products, and customers.

For a WooCommerce business, the Sale is the bridge between the store order and the rest of RevCent.

Conceptually:

```text
WooCommerce checkout
    ↓
RevCent User Shop / plugin connection
    ↓
RevCent Sale
    ↓
Product Sales, Customer, Shipping, Tax, Payments, Subscriptions, Trials, Emails, Functions, AI, Reporting
```

This is valuable because RevCent can provide a unified view of commerce activity even when the customer originally checked out somewhere else.

## Sales and Customers

Every Sale belongs to a Customer.

The Customer is the person or entity buying. The Sale is the purchase event connected to that Customer.

This relationship matters because a customer may have many Sales over time. Those Sales become part of the customer's history, lifetime value, support context, payment history, refund history, subscription/trial lifecycle, and reporting profile.

For customer support, a Sale helps answer questions such as:

- What did the customer buy?
- When did they buy it?
- Was the payment successful?
- Was anything shipped?
- Was anything refunded?
- Did this Sale start a subscription or trial?
- Did this Sale come from a shop, campaign, ad, affiliate, or tracked visit?

For the relationship graph:

```text
Customer
    ↓
Sale
    ↓
Product Sales, Shipping, Tax, Payment, Subscription, Trial, Refund, Support, Reporting
```

## Sales and Product Sales

Product Sales are the line items inside a Sale.

A Sale can contain one Product Sale or many Product Sales. Each Product Sale represents one purchased product line inside the parent Sale.

This distinction is central to how RevCent creates granular visibility.

```text
Sale = the overall purchase event
Product Sale = one product line item within that Sale
```

For example, if a customer buys three different products in one checkout, RevCent can represent that as one Sale with three Product Sales.

This matters because product-level visibility supports:

- Product-level revenue reporting.
- Product-specific refunds.
- Product-level subscription or trial attribution.
- Product-level shipping and tax relationships.
- Product performance analysis.
- Bundle, upsell, cross-sell, and multi-product order visibility.

Sales show the order. Product Sales show what was inside the order.

## Sales and Products

Products define what can be sold. Sales show that the customer attempted or completed a purchase involving those Products.

A Product is reusable catalog configuration. A Sale is the actual purchase event. A Product Sale connects the two.

```text
Product
    ↓
Product Sale
    ↓
Sale
```

This is important because a Product can be sold many times across many Sales, and each Sale can contain multiple Products.

For ecosystem understanding, Sales are where catalog design becomes real customer activity.

## Sales and Shipping

A Sale can create Shipping records when shippable products are sold.

Shipping records help RevCent track fulfillment, shipment status, provider/tracking context, and shipping-related customer support activity.

This relationship matters because an ecommerce purchase often does not end at payment. A physical product needs to be fulfilled, shipped, tracked, delivered, supported, and sometimes refunded.

Conceptually:

```text
Sale contains shippable Product Sales
    ↓
Shipping records are created or connected
    ↓
Fulfillment and delivery lifecycle begins
```

Shipping is also important for refunds. If only shipping should be refunded, the business should treat shipping separately instead of assuming the entire Sale should be refunded.

## Sales and Tax

A Sale can include Tax records.

Tax records help separate tax amounts from product and shipping amounts. This makes the Sale more transparent for finance, support, refunds, and reporting.

For ecosystem purposes, the key idea is that Tax is not just a number buried in the Sale total. It can be represented as a related item so the business can understand how tax relates to a Sale, Customer, Product Sale, Shipping, Subscription, Trial, or refund outcome.

## Sales and Discounts and Coupons

Sales can include discounts.

Discounts may come from coupons, fixed reductions, percentage reductions, product-specific discounts, shipping discounts, or other promotional logic.

Discounts matter because they affect how much the customer paid, how much revenue the business retained, and how the performance of campaigns, shops, products, and offers should be understood.

From an ecosystem perspective:

```text
Sale total is shaped by:
Products + Shipping + Tax - Discounts
```

This means a Sale is not only a payment event. It is a structured financial event with components.

## Sales and Subscriptions

A Sale can create a Subscription when the purchased Product is configured for recurring billing.

This is one of the most important relationships in RevCent because a single Sale can start a long-term customer lifecycle.

```text
Customer buys subscription Product
    ↓
Sale is created
    ↓
Product Sale is created
    ↓
Subscription is created
    ↓
Future subscription renewals occur
```

The Sale provides the original context for the subscription. It can show the campaign, customer, shop, product, payment type, metadata, and attribution context that started the recurring relationship.

For subscription businesses, this helps answer questions such as:

- Which Sales created subscriptions?
- Which Products start the best recurring relationships?
- Which campaigns produce long-term customers?
- Which shops or funnels create the highest-quality subscriptions?
- Which Sales later become overdue, refunded, cancelled, or recovered?

## Sales and Trials

A Sale can also create a Trial when the purchased Product has trial behavior.

Trials are important because the initial Sale may not represent the full future value of the customer. The Sale may start a trial that later expires, converts, charges, cancels, or creates a subscription.

```text
Customer buys or starts trial Product
    ↓
Sale is created
    ↓
Trial is created
    ↓
Trial expiration or conversion happens later
```

This makes the Sale the origin point for trial lifecycle reporting.

Sales help businesses understand which offers start trials, which trials convert, which trials create refunds or support issues, and which trial paths lead to recurring revenue.

## Sales and Payment Records

Sales can connect to multiple payment paths.

A Sale may involve:

- Credit card Transactions.
- PayPal Transactions.
- Offline Payments, including supported alternate payment providers.
- Check Direct payment records.
- Pending Refunds later in the lifecycle.

The payment type determines how the Sale is paid or recorded, but the Sale remains the central parent context.

For example:

```text
Sale
    ├─ Credit card Transaction
    ├─ PayPal Transaction
    ├─ Offline Payment
    └─ Check Direct
```

Credit card Sales are especially important because RevCent can securely store customer card information in its PCI DSS Level 1 environment, supporting future purchases, subscription renewals, trial expiration charges, declined payment recovery, customer support updates, and payment retry workflows.

The business value is that RevCent can serve as both a commerce record system and a secure payment lifecycle platform.

## Sales and Pending Sales

Not every Sale workflow needs to charge immediately.

Pending Sales are useful when a business needs a multi-step process before payment is finalized. This can include checkout steps, upsells, review screens, customer support flows, voice-assisted checkout, or abandoned/pending order recovery.

Conceptually:

```text
Pending Sale created
    ↓
Customer/cart/order details may change
    ↓
Totals may be estimated or reviewed
    ↓
Pending Sale is processed when ready
```

This gives ecommerce businesses flexibility for more complex purchase experiences without losing the central Sale context.

## Sales and Refunds

Sales are central to refunds, but not every refund should be handled at the Sale level.

A full Sale void or full Sale refund is appropriate when the entire Sale should be cancelled or refunded. In that case, the Sale-level action affects the whole purchase and can also cancel related subscriptions or trials.

Partial refunds should usually happen at the related component level, such as Product Sale, Shipping, or Tax, because this preserves more accurate reporting.

```text
Refund entire Sale
    ↓
Sale-level void/refund

Refund one product line
    ↓
Product Sale refund

Refund shipping only
    ↓
Shipping refund

Refund tax only
    ↓
Tax refund
```

This is important for non-technical users because refund location affects business understanding. A product-specific refund should remain visible as a product-specific refund. A shipping issue should remain visible as a shipping refund.

Good refund attribution improves product reporting, support analysis, customer service decisions, and operational learning.

## Sales and Email Templates

Sales often trigger customer communication.

Email Templates can respond to Sale-related events and contexts. A Sale can lead to communication such as:

- Purchase confirmations.
- Payment decline messages.
- Abandoned or pending Sale recovery emails.
- Shipping or fulfillment updates.
- Refund confirmations.
- Trial-related emails.
- Subscription-related emails.
- Shop-specific or campaign-specific customer messages.
- Product-specific follow-up emails.

This makes Sales a major trigger point for automated customer communication.

Conceptually:

```text
Sale event occurs
    ↓
Email Template rules evaluate
    ↓
Customer receives the appropriate message
```

The relationship between Sales and Email Templates is valuable because it turns commerce events into timely communication without requiring staff to manually respond to every purchase outcome.

## Sales and Functions

Functions can extend what happens around a Sale.

A Function can be used when a business needs custom logic around Sale events, Sale data, external systems, or automation decisions.

For example, Functions may help with:

- Custom eligibility checks before follow-up automation.
- Sending Sale data to an external system.
- Enriching Sale metadata.
- Deciding whether a Sale should trigger an AI Assistant or Email Template.
- Calling a third-party API after a Sale event.
- Handling custom fulfillment, support, fraud, or reporting workflows.
- Filtering which Sale events are important enough for an automation to run.

For ecosystem understanding:

```text
Sale event occurs
    ↓
Function can inspect or act on that context
    ↓
Function can pass, fail, enrich, notify, route, or integrate
```

This makes Functions the custom automation layer around Sales.

## Sales and Events

Sales are event-rich items.

When something important happens to a Sale, RevCent can use that activity as a trigger for other features. Sale events can power Email Templates, Functions, AI Assistants, AI Voice Agents, notes, metadata updates, recovery workflows, and external integrations.

The event relationship matters because it lets RevCent respond to commerce activity automatically.

```text
Sale changes or reaches an important state
    ↓
Event is created
    ↓
Configured RevCent features can respond
```

This is why Sales are not passive records. They can actively drive workflows across the RevCent ecosystem.

## Sales and AI Assistants

AI Assistants can analyze or act around Sales when they are explicitly configured with the correct instructions, tools, triggers, and safeguards.

Common Sale-related AI Assistant use cases include:

- Review declined or failed Sales.
- Determine whether recovery is appropriate.
- Send or trigger recovery messaging.
- Add notes or metadata summarizing the outcome.
- Analyze Sale patterns through BigQuery.
- Trigger Functions for custom eligibility logic.
- Trigger another workflow for high-value or unusual Sales.
- Create internal memos for staff review.

AI Assistants should not be treated as unrestricted payment actors. Sale creation, retry, processing, or recovery should only happen when the assistant is intentionally configured and permitted to do so.

For ecosystem graphing:

```text
Sale event
    ↓
AI Assistant workflow
    ↓
Analysis, recovery, notes, metadata, email, function, or memo outcome
```

## Sales and AI Voice Agents

AI Voice Agents can participate in Sale support and recovery when configured for those workflows.

This can include:

- Declined payment recovery calls.
- Pending Sale completion calls.
- Checkout assistance.
- Trial conversion calls.
- Subscription renewal recovery calls.
- Customer support calls involving Sale details.
- Refund or cancellation triage.
- Chargeback prevention calls.

The value of AI Voice Agents is that a Sale can become the context for a live customer conversation.

For example:

```text
Sale is declined or pending
    ↓
AI Voice Agent calls or receives a call from the customer
    ↓
Agent verifies context and assists according to policy
    ↓
Outcome is recorded with notes or metadata
```

Payment and card-related actions should only be enabled when the business has clear policies, customer consent requirements, identity verification expectations, and retry limits.

## Sales and Tracking Attribution

Sales can connect to tracking and attribution context.

When RevCent tracking is used, visitor activity, URL parameters, campaign data, affiliate context, ad click identifiers, landing pages, or other metadata can become connected to the later Sale.

This is valuable because it helps businesses understand where Sales came from, not just that they happened.

Examples of business questions this can support:

- Which traffic source created the Sale?
- Which campaign or affiliate produced the customer?
- Which landing page led to the purchase?
- Which URL parameters were present before conversion?
- Which ads or funnels create high-value Sales?
- Which sources produce refunds, subscriptions, trials, or chargebacks later?

For ecosystem graphing:

```text
Tracking Visitor / Tracking Entry
    ↓
Sale
    ↓
Customer, Product Sales, Payments, Subscriptions, Trials, Reporting
```

Attribution is especially powerful because a Sale can carry forward context that affects the entire lifecycle.

## Sales and Metadata

Metadata makes Sales more flexible.

A business can attach custom labels, identifiers, campaign details, third-party IDs, attribution values, workflow markers, or other business-specific context to a Sale.

Metadata can help connect a Sale to:

- External order IDs.
- Affiliate or partner identifiers.
- UTM values.
- Internal workflows.
- AI outcomes.
- Recovery attempts.
- Fraud review context.
- Customer support notes.
- Shop-specific identifiers.
- Custom reporting dimensions.

For ecosystem understanding, metadata gives Sales business-specific meaning beyond the standard RevCent relationships.

## Sales and Campaigns

Sales can connect to Campaigns.

A Campaign helps organize where a Sale belongs from a business, marketing, funnel, brand, or project perspective.

This relationship matters because businesses rarely want to view Sales as one undifferentiated pile. They usually need to understand performance by campaign, offer, traffic source, funnel, or product line.

Campaign context helps Sales reporting and operational workflows remain organized.

## Sales and Fulfillment

When a Sale includes shippable products, it can lead to fulfillment activity.

The Sale itself provides the purchase context. Product Sales identify the purchased line items. Shipping records connect those line items to delivery, fulfillment accounts, tracking details, and customer support outcomes.

This makes the Sale the starting point for post-purchase operations.

```text
Sale with shippable product
    ↓
Product Sale
    ↓
Shipping
    ↓
Fulfillment and tracking
```

This is important for ecommerce businesses because fulfillment problems, shipping refunds, replacement workflows, and customer support issues usually need to trace back to the original Sale.

## Sales and Fraud, Risk, Disputes, and Recovery

Sales also connect to risk and recovery workflows.

A Sale may be connected to:

- Fraud review or fraud alerts.
- Fraud Detection records.
- Chargebacks.
- PayPal Disputes.
- Declined Transactions.
- Salvage Transactions.
- Pending refunds.
- AI Assistant or AI Voice Agent recovery workflows.
- Notes or metadata recording risk and support context.

This makes Sales important not only for revenue, but also for loss prevention and customer recovery.

A declined or failed Sale may become an opportunity for recovery. A successful Sale may later become a support, refund, fulfillment, dispute, or chargeback case. In both cases, the Sale remains the parent context.

## Full Sale Lifecycle

A Sale can move through many business phases.

```text
Customer arrives or is created
    ↓
Tracking and metadata may attach attribution context
    ↓
Customer attempts or completes checkout
    ↓
Sale is created
    ↓
Product Sales are created
    ↓
Payment record is created or linked
    ↓
Shipping, tax, discounts, subscriptions, or trials may be created
    ↓
Email Templates, Functions, AI workflows, and events may respond
    ↓
Fulfillment, renewal, trial, refund, dispute, risk, or recovery activity may follow
    ↓
BigQuery can report on the full relationship graph
```

This lifecycle is why the Sale item is pivotal. It is the parent object that gives context to the rest of the commerce journey.

## Sales and BigQuery Reporting

The `sale` BigQuery table gives RevCent a business-level reporting source for Sales and their relationships.

For ecosystem purposes, the `sale` table is useful because it helps reveal how Sales connect to other RevCent items and features. It can support reporting across:

- Customers.
- Product Sales.
- Products purchased.
- Shipping.
- Tax.
- Discounts.
- Campaigns.
- Shops.
- Tracking Visitors.
- Credit card Transactions.
- PayPal Transactions.
- Offline Payments.
- Check Direct records.
- Pending Refunds.
- Subscriptions.
- Trials.
- Salvage Transactions.
- Metadata.

The goal of BigQuery in this ecosystem document is not to show schemas or write queries. The value is that BigQuery lets the business view Sales as part of a larger relationship graph and answer business questions at scale.

Examples of business-level reporting capabilities include:

- Revenue by campaign, shop, payment type, or product.
- Sales by customer segment or acquisition source.
- Product mix across orders.
- Trial starts and subscription starts from initial Sales.
- Refund behavior by Sale, product, shipping, or tax component.
- Sales tied to tracking metadata such as affiliates, ads, URLs, or campaigns.
- WooCommerce or third-party shop performance.
- Recovery performance for declined or pending Sales.
- Fulfillment impact of shippable products.
- Customer lifetime value beginning with the initial Sale.

BigQuery is the right layer for broad reporting and relationship analysis. Operational Sale screens and list views are better for finding or reviewing specific Sales.

## Sales in the Web App

In the RevCent web app, Sales can be viewed from the Revenue area.

The Sale details page is important because it shows the related entities connected to the Sale, such as Products Sold, Shipping, Tax, Subscriptions, Trials, and other downstream records.

This gives staff a human-readable view of the Sale's relationship graph.

A support person, operations person, or finance person can use the Sale details page to understand what happened in a customer purchase without needing to inspect the entire account manually.

## API and MCP Context

Sales can be created, estimated, retrieved, searched, processed, voided, and connected to pending workflows through the API and MCP.

For this ecosystem document, the important idea is not the exact request format. The important idea is that the API and MCP make Sales available to external systems, AI clients, automated workflows, connected shops, recovery processes, and custom business logic.

The API and MCP allow a Sale to become a programmable commerce item while still remaining connected to the broader RevCent ecosystem.

## Relationship Summary

| Related area | How it connects to Sales |
|---|---|
| Customer | Every Sale belongs to a Customer and contributes to customer history and lifetime value. |
| Product Sales | Product Sales are the line items inside the Sale. |
| Products | Products define what is sold; Product Sales connect Products to the Sale. |
| Shipping | Shippable products in a Sale can create Shipping and fulfillment context. |
| Tax | Tax can be itemized and related to the Sale. |
| Discounts/Coupons | Discounts affect Sale totals and promotional performance. |
| Subscriptions | Subscription Products sold in a Sale can create Subscriptions. |
| Trials | Trial Products sold in a Sale can create Trials. |
| Transactions | Credit card payment attempts connect to Sales. |
| PayPal Transactions | PayPal Sales can connect to PayPal payment records. |
| Offline Payments | Alternate or non-card payment Sales can connect to Offline Payment records. |
| Check Direct | Check-based Sales can connect to Check records. |
| Pending Refunds | Refund activity can connect back to the Sale and its components. |
| Shops | External stores such as WooCommerce can create Sales in RevCent. |
| Email Templates | Sale events can trigger customer communication. |
| Functions | Sale events can trigger custom automation or external integrations. |
| AI Assistants | AI workflows can analyze, recover, or act on Sales when configured. |
| AI Voice Agents | Voice workflows can support or recover Sales live with customers when configured. |
| Tracking | Tracking data and metadata can connect Sale outcomes to traffic sources and visitor history. |
| BigQuery | Sales can be analyzed across the broader RevCent relationship graph. |

## Common Ecommerce Benefits

Sales give ecommerce businesses several major benefits:

- A single parent record for each purchase attempt or purchase event.
- Product-level line-item visibility through Product Sales.
- Better refund attribution across product, shipping, and tax components.
- Clear connection between customers and their purchase history.
- Support for subscriptions and trials that begin from an initial Sale.
- Support for shippable products and fulfillment workflows.
- Support for multiple payment types.
- Support for WooCommerce and external shop-originated purchases.
- Automated customer communication through Email Templates.
- Custom automation through Functions.
- AI-powered support, analysis, and recovery workflows.
- Voice-assisted recovery and customer support when configured.
- Attribution and metadata for traffic source and lifecycle reporting.
- BigQuery visibility across revenue, refunds, products, shops, campaigns, customers, and lifecycle outcomes.

## Common Mistakes to Avoid

- Treating a Sale as only a payment record.
- Forgetting that a Sale can contain multiple Product Sales.
- Refunding the entire Sale when only one product, shipping charge, or tax item should be refunded.
- Ignoring the shop, campaign, metadata, or tracking context behind a Sale.
- Ignoring Product Sales when analyzing product performance.
- Ignoring Shipping when a shippable product is sold.
- Ignoring Subscriptions or Trials that were created from the Sale.
- Treating AI Assistants or AI Voice Agents as automatically allowed to process or recover Sales without explicit configuration and safeguards.
- Using operational list views as a substitute for BigQuery reporting.
- Looking at Sales without considering downstream relationships such as refunds, disputes, chargebacks, fulfillment, and customer support.

## AI/MCP Guidance

When an AI or MCP client explains Sales to a user, it should describe Sales as the central purchase item in RevCent.

When helping with a specific Sale, it should preserve the distinction between:

- The Sale as the parent purchase event.
- Product Sales as line items.
- Shipping and Tax as separate related items.
- Subscriptions and Trials as lifecycle outcomes.
- Payment records as the payment path.
- Refunds as component-specific or full-Sale outcomes.
- BigQuery as the proper source for broad reporting and relationship analysis.

When discussing automation, it should explain that Sales can trigger or support Email Templates, Functions, AI Assistants, AI Voice Agents, metadata updates, notes, and other workflows, but payment actions should only occur under explicit configuration, permissions, and business rules.

## Summary

Sales are the parent purchase item at the center of RevCent commerce.

A Sale connects the Customer to the Products purchased, the Product Sales created, the Shipping and Tax records generated, the payment path used, the Subscription or Trial lifecycle that may begin, and the automation or communication that may follow.

Sales are pivotal because they turn checkout activity into a relationship graph:

```text
Customer + Products + Payment + Shop + Campaign + Tracking
    ↓
Sale
    ↓
Product Sales + Shipping + Tax + Subscription + Trial + Refunds + Emails + Functions + AI + Reporting
```

For ecommerce businesses, the Sale is the item that explains the full purchase lifecycle: what happened, why it happened, what it created, how it was communicated, how it can be recovered or refunded, and how it should be measured.


---
Document Parent Directory
* [Items](https://revcent.com/documentation/markdown/ecosystem/item/index.md) - Non-technical markdown documentation for items within the RevCent ecosystem. An item is an entity that is spawned as a result of a feature or operation conducted within the RevCent ecosystem.