Sherweb Billing — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Sherweb Billing (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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 dated within a billing period. 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 costs, and ensure accurate client billing. Note that the tool surface reaches charges, not periods and not invoices — see What this plugin cannot retrieve.
MSP owes the distributor, the opposite direction to the accounting and PSA plugins. Client-facing invoices are qbo-invoices, xero-invoices, autotask-billing, or halopsa-invoices. Getting the direction wrong inverts every margin calculation.
pax8-invoices.
cross-vendor reconciliation itself; use shared-skills-billing-reconciliation.
view is the distributor platform's ledger, not the accounting system's. Collections work runs off qbo-reports or xero-reports; see sherweb-customers for what Sherweb's own AR data covers.
| Tool | Description | Key Parameters | ||
|---|---|---|---|---|
sherweb_billing_payable_charges | Get payable charges for a date range | billingCycleType (OneTime\ | Monthly\ | Yearly), periodFrom, periodTo, page, pageSize |
sherweb_billing_charge_details | Get detailed breakdown of a specific charge | chargeId (required) |
Two capabilities that earlier revisions of this skill described do not exist on the shipped server. Do not substitute a near-miss for either.
billing periods, their IDs, dates, or open/closed status. You supply the window yourself as periodFrom/periodTo on sherweb_billing_payable_charges; you cannot ask the server which periods exist. If an operator says "the latest period", resolve that from the calendar and the MSP's own billing cycle, then pass explicit dates — never guess a billingPeriodId, which is not a parameter of any tool here.
invoices, fetches an invoice by ID, or returns invoice line items. The two invoice-adjacent capabilities are narrower and are not substitutes: sherweb_billing_charge_details returns the line items of a single charge by charge ID, and sherweb_customers_accounts_receivable returns a customer's outstanding balance and aging. Neither is an invoice. When an operator asks for a Sherweb invoice, say so plainly and offer charge-level reconciliation or the AR balance instead. Invoice documents live in the Sherweb partner portal.
Call sherweb_billing_payable_charges with an explicit date range:
(e.g. 2026-02-01 to 2026-02-28). You choose these; there is no period list to pick from.
OneTime, Monthly, or Yearly. If you call thetool with none of billingCycleType, periodFrom, or periodTo, the server elicits the cycle type from the caller before proceeding.
page (1-based) and pageSize for large result setsExample: Get monthly recurring charges for February 2026:
sherweb_billing_payable_charges with billingCycleType=Monthly,periodFrom=2026-02-01, periodTo=2026-02-28, pageSize=100
Call sherweb_billing_charge_details with the chargeId of a charge returned by sherweb_billing_payable_charges to see its line items, pricing tiers, deductions, fees, and tax.
Sherweb 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) * 100Tips for margin analysis:
listPrice vs netPrice to see your distributor discount| 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 |
No invoice fields are documented here because no tool on this server returns an invoice. See What this plugin cannot retrieve, above.
to read it from
sherweb_billing_payable_charges with periodFrom and periodTo setto that window and billingCycleType set to the cycle you are reconciling, paginating through all results
customerId to see per-customer totalstotal field across all chargesdeductions arraysInvoice retrieval is not available through this plugin — see What this plugin cannot retrieve. Verify at the charge level instead:
sherweb_billing_payable_charges for the window under reviewsherweb_billing_charge_details withits chargeId to see the line items, deductions, fees, and tax
itself, open it in the Sherweb partner portal — no tool here returns it.
sherweb_billing_payable_chargesonce per month, with periodFrom/periodTo bounding each month explicitly
Payable 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 |
|---|---|---|
| No charges found | The periodFrom/periodTo window contains no charges, or the wrong billingCycleType was requested | Widen the date range and re-check the cycle type. There is no period list to validate against — the window is whatever you passed |
| Charge details unavailable | Charge ID does not exist | Verify the charge ID from the sherweb_billing_payable_charges result |
| Authentication error | Expired or invalid token | Re-authenticate using OAuth 2.0 client credentials flow |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.