From pax8
Retrieves Pax8 invoices and usage summaries, analyzes billing data, reconciles MSP costs with client charges, and reviews billing cycles via dedicated API tools.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin pax8This skill uses the workspace's default tool permissions.
Invoices in Pax8 represent the MSP's cost for cloud subscriptions procured through the marketplace. Pax8 generates invoices on a regular billing cycle, detailing the charges for each subscription across all client companies. MSPs use invoice data to reconcile their costs against what they charge their clients, ensuring profitability and catching billing discrepancies.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Reviews prose for communication issues impeding comprehension, outputs minimal fixes in a three-column table per Microsoft Writing Style Guide. Useful for 'review prose' or 'improve prose' requests.
Invoices in Pax8 represent the MSP's cost for cloud subscriptions procured through the marketplace. Pax8 generates invoices on a regular billing cycle, detailing the charges for each subscription across all client companies. MSPs use invoice data to reconcile their costs against what they charge their clients, ensuring profitability and catching billing discrepancies.
| Tool | Description | Key Parameters |
|---|---|---|
pax8-list-invoices | List and filter invoices | page, size, sort, status (unpaid/paid/void/carried/nothing due), invoiceDate, invoiceDateRangeStart, invoiceDateRangeEnd, dueDate, total, balance, carriedBalance, companyId |
pax8-get-invoice-by-uuid | Get a single invoice | uuid (required) |
pax8-get-usage-summary | Get usage summary for a subscription | subscriptionId (required), page, size, sort, resourceGroup, companyId |
pax8-get-detailed-usage-summary | Get detailed usage data | usageSummaryId (required), usageDate, page, size |
Call pax8-list-invoices with optional parameters:
status to unpaid, paid, void, carried, or nothing duecompanyId to a company UUIDinvoiceDateRangeStart and invoiceDateRangeEndinvoiceDatepage (0-based) and size (up to 200)Example: List unpaid invoices:
pax8-list-invoices with status=unpaid, size=200Example: List invoices for a company:
pax8-list-invoices with companyId=a1b2c3d4-..., size=200Example: List invoices in a date range:
pax8-list-invoices with invoiceDateRangeStart=2026-01-01, invoiceDateRangeEnd=2026-01-31Call pax8-get-invoice-by-uuid with the uuid parameter.
Call pax8-get-usage-summary with subscriptionId (required). Optionally filter by resourceGroup or companyId.
Call pax8-get-detailed-usage-summary with usageSummaryId (required). Optionally filter by usageDate.
Pax8 operates as a distributor between vendors and MSPs:
Vendor (Microsoft, etc.) --> Pax8 (Distributor) --> MSP (Partner) --> End Client
| Level | Description |
|---|---|
| Invoice | A billing statement for a billing period |
| Invoice Item | A line item for a specific subscription charge |
| Usage Summary | Consumption details for usage-based products (e.g., Azure) |
| Status | Description |
|---|---|
unpaid | Invoice issued, payment not yet received |
paid | Invoice has been paid |
void | Invoice has been voided/cancelled |
carried | Balance carried forward |
nothing due | No payment required |
The core MSP workflow for invoices:
pax8-list-invoicespax8-get-invoice-by-uuidcompanyId on invoice items| Field | Type | Description |
|---|---|---|
id | UUID | Invoice unique identifier |
invoiceDate | date | Date the invoice was issued |
dueDate | date | Payment due date |
status | string | Invoice status (unpaid, paid, etc.) |
total | decimal | Total invoice amount |
balance | decimal | Remaining unpaid balance |
carriedBalance | decimal | Balance carried from previous period |
currency | string | Currency code (e.g., "USD") |
companyId | UUID | Company associated with the invoice |
partnerName | string | MSP partner name |
| Field | Type | Description |
|---|---|---|
subscriptionId | UUID | Associated subscription |
resourceGroup | string | Resource group name |
quantity | decimal | Usage quantity |
unitOfMeasure | string | Unit of measurement |
currentCharges | decimal | Charges for this period |
date | date | Usage reporting date |
pax8-list-invoices with invoiceDateRangeStart and invoiceDateRangeEnd for the current monthpax8-get-invoice-by-uuid to get full detailscompanyId fieldpax8-get-company-by-uuidpax8-list-invoices with sort by date to get the most recent invoicepax8-get-invoice-by-uuidpax8-get-product-pricing-by-uuid to get the suggestedRetailPrice(suggestedRetailPrice - partnerBuyPrice) / suggestedRetailPrice * 100pax8-list-invoices with a wide date range (e.g., last 6 months)invoiceDate fieldpax8-list-invoices with status=unpaiddueDate on each invoice to identify overdue paymentsFor usage-based products like Azure:
pax8-list-subscriptions with companyId and productIdpax8-get-usage-summary with the subscriptionIdpax8-get-detailed-usage-summary with the usageSummaryIdInvoice:
{
"id": "i1n2v3o4-i5c6-7890-abcd-ef1234567890",
"invoiceDate": "2026-02-01",
"dueDate": "2026-03-03",
"status": "Unpaid",
"total": 4527.50,
"balance": 4527.50,
"currency": "USD",
"partnerName": "Acme MSP"
}
| Error | Cause | Resolution |
|---|---|---|
| Invoice not found | Invalid UUID | Verify the invoice UUID with pax8-list-invoices |
| Invalid status filter | Wrong status value | Use unpaid, paid, void, carried, or nothing due |
| Invalid date format | Wrong date string | Use YYYY-MM-DD format for date parameters |
| Usage summary not found | Invalid subscription or no usage data | Verify the subscription UUID; not all products have usage data |
companyId to attribute costs per companyinvoiceDateRangeStart/invoiceDateRangeEnd to scope queriesstatus=unpaid filter