From sherweb
Accesses Sherweb distributor billing data via tools for payable charges, billing periods, invoices, charge details, pricing breakdowns (listPrice, netPrice, prorated), deductions, fees, taxes, and MSP margins.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin sherwebThis skill uses the workspace's default tool permissions.
Billing in Sherweb represents the financial data flowing from the distributor to the service provider (MSP). When Sherweb provisions or manages cloud subscriptions on behalf of an MSP's customers, it generates payable charges that roll up into billing periods. Each charge includes detailed pricing breakdown with list prices, net prices, proration, deductions (promotional and performance), fees,...
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.
Billing in Sherweb represents the financial data flowing from the distributor to the service provider (MSP). When Sherweb provisions or manages cloud subscriptions on behalf of an MSP's customers, it generates payable charges that roll up into billing periods. Each charge includes detailed pricing breakdown with list prices, net prices, proration, deductions (promotional and performance), fees, and taxes. Understanding Sherweb billing data is critical for MSPs to calculate margins, reconcile invoices, and ensure accurate client billing.
| Tool | Description | Key Parameters |
|---|---|---|
sherweb_billing_get_payable_charges | Get payable charges for a billing period | billingPeriodId, page, pageSize |
sherweb_billing_get_billing_periods | List available billing periods | page, pageSize |
sherweb_billing_get_charge_details | Get detailed breakdown of a specific charge | chargeId |
sherweb_billing_get_invoices | List invoices for the service provider | page, pageSize, status |
sherweb_billing_get_invoice_details | Get a specific invoice with line items | invoiceId |
Call sherweb_billing_get_billing_periods to list available billing periods:
page (1-based) and pageSize (default 25)Example: List recent billing periods:
sherweb_billing_get_billing_periods with pageSize=10Call sherweb_billing_get_payable_charges with a billingPeriodId:
billingPeriodId from the billing periods listpage and pageSize for large result setsExample: Get charges for a billing period:
sherweb_billing_get_payable_charges with billingPeriodId=bp-2026-02, pageSize=100Call sherweb_billing_get_invoices to list invoices:
status to filter (e.g., Paid, Unpaid, Overdue)page and pageSizeSherweb categorizes charges into three types:
| Charge Type | Description | When Generated |
|---|---|---|
Setup | One-time provisioning or activation fees | When a new subscription is created |
Recurring | Ongoing subscription charges | Each billing cycle (monthly/yearly) |
Usage | Consumption-based charges (e.g., Azure metered) | Based on actual usage during the period |
| Cycle | Description | Charge Frequency |
|---|---|---|
OneTime | Single charge, no recurrence | Once at setup |
Monthly | Charged every month | Monthly billing period |
Yearly | Charged annually | Annual billing period |
Every charge in Sherweb includes a detailed pricing structure:
| Field | Type | Description |
|---|---|---|
listPrice | decimal | Vendor's published list price per unit |
netPrice | decimal | Partner's net price after distributor discounts |
quantity | integer | Number of units (seats, licenses, etc.) |
prorated | boolean | Whether the charge is prorated for a partial period |
proratedDays | integer | Number of days in the prorated period |
subTotal | decimal | Calculated subtotal before deductions (netPrice x quantity) |
Sherweb applies deductions to reduce the partner's cost. Deductions come in three types:
| Deduction Type | Description | Calculation |
|---|---|---|
PromotionalMoney | Fixed dollar amount promotional discount | Subtracted from subTotal |
PromotionalPercentage | Percentage-based promotional discount | Percentage off subTotal |
PerformancePercentage | Performance-based rebate for hitting volume targets | Percentage off subTotal |
After deductions, additional line items may apply:
| Item | Description |
|---|---|
fees | Administrative or platform fees added by Sherweb |
taxes | Applicable sales tax, GST, HST, or VAT |
total | Final amount payable (subTotal - deductions + fees + taxes) |
To calculate your MSP margin on a Sherweb charge:
MSP Cost = charge.total (what you pay Sherweb)
Client Price = your retail price to the customer
Margin = Client Price - MSP Cost
Margin % = (Margin / Client Price) * 100
Tips for margin analysis:
listPrice vs netPrice to see your distributor discount| Field | Type | Description |
|---|---|---|
id | string | Billing period identifier |
startDate | date | Period start date |
endDate | date | Period end date |
status | string | Period status (Open, Closed, Processing) |
totalAmount | decimal | Total charges for the period |
| Field | Type | Description |
|---|---|---|
id | string | Charge unique identifier |
customerId | string | Customer the charge belongs to |
customerName | string | Customer display name |
subscriptionId | string | Associated subscription |
productName | string | Product or SKU name |
chargeType | string | Setup, Recurring, or Usage |
billingCycle | string | OneTime, Monthly, or Yearly |
listPrice | decimal | Vendor list price per unit |
netPrice | decimal | Partner net price per unit |
quantity | integer | Number of units |
prorated | boolean | Whether charge is prorated |
proratedDays | integer | Days in prorated period |
subTotal | decimal | Subtotal before deductions |
deductions | array | List of applied deductions |
fees | decimal | Additional fees |
taxes | decimal | Tax amount |
total | decimal | Final payable amount |
| Field | Type | Description |
|---|---|---|
id | string | Invoice unique identifier |
invoiceNumber | string | Human-readable invoice number |
invoiceDate | date | Date invoice was issued |
dueDate | date | Payment due date |
status | string | Invoice status (Paid, Unpaid, Overdue) |
totalAmount | decimal | Invoice total |
currency | string | Currency code (e.g., USD, CAD) |
lineItems | array | Itemized charges on the invoice |
sherweb_billing_get_billing_periods to find the current or most recent closed periodsherweb_billing_get_payable_charges with the billingPeriodId, paginating through all resultscustomerId to see per-customer totalstotal field across all chargesdeductions arrayssherweb_billing_get_invoices to list recent invoicessherweb_billing_get_invoice_details with the invoiceIdPayable Charge:
{
"id": "chg-2026-02-001",
"customerId": "cust-abc-123",
"customerName": "Acme Corporation",
"subscriptionId": "sub-def-456",
"productName": "Microsoft 365 Business Premium",
"chargeType": "Recurring",
"billingCycle": "Monthly",
"listPrice": 22.00,
"netPrice": 17.10,
"quantity": 25,
"prorated": false,
"proratedDays": null,
"subTotal": 427.50,
"deductions": [
{
"type": "PerformancePercentage",
"description": "Volume rebate - Gold tier",
"percentage": 3.0,
"amount": 12.83
}
],
"fees": 0.00,
"taxes": 33.17,
"total": 447.84
}
| Error | Cause | Resolution |
|---|---|---|
| Billing period not found | Invalid billingPeriodId | List available periods with sherweb_billing_get_billing_periods |
| No charges found | Period has no charges or wrong period selected | Verify the billing period dates cover the expected range |
| Charge details unavailable | Charge ID does not exist | Verify the charge ID from the payable charges list |
| Invoice not found | Invalid invoiceId | List invoices with sherweb_billing_get_invoices |
| Authentication error | Expired or invalid token | Re-authenticate using OAuth 2.0 client credentials flow |