io.github.theluckystrike/billing-docs-credit-notes-purchase-orders
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Credit notes against your invoices and purchase orders to suppliers, with VAT and A4 PDFs.
| Author | io.github.theluckystrike |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2607 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"billing-docs-credit-notes-purchase-orders": {
"url": "https://mcp.zovo.one/mcp/billing-docs",
"transport": "streamable-http"
}
}
}
Measured tools (16)
credit_note_createCredit one invoice: the whole invoice, a GROSS amount_minor split over its VAT rates, or named lines. Amounts store negative, reusing the invoice's own rates. Free: 5 a month. Send it with credit_note_text.
Parameters:
invoice(required) — string — The invoice number to credit, e.g. INV-2026-0001reason(required) — string — Why the money is being given back, e.g. "returned goods" or "billed twice". Printed on the documentlines— array — Credit only these invoice lines. Leave out with amount_minor for a full credit notenotes— string — Free text printed under the totalsissue_date— string — YYYY-MM-DD, defaults to today in your business profile's timezoneamount_minor— integer — Credit this GROSS amount, VAT included, in minor units. Split across the invoice's VAT rates in proportion to each rate's share of the total
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_listList credit notes newest first: id, invoice, client, basis, reason, currency and the NEGATIVE total, with the amount credited per currency. Filter by invoice, client or issue date range.
Parameters:
to— string — YYYY-MM-DD, latest issue datefrom— string — YYYY-MM-DD, earliest issue dateclient— string — Only credit notes for clients whose name contains this textinvoice— string — Only credit notes issued against this invoice number
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_getReturn one credit note in full by id or exact client name: every negated line, VAT lines, totals, the reason, and the invoice number and date it reverses. Reads only. Use credit_note_list for the ids.
Parameters:
id(required) — string — Credit note id such as CN-2026-0001, or an exact client name
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_pdfCall this tool to render one credit note as an A4 print-ready document and return a download link valid for one hour: the invoice layout titled CREDIT NOTE, with the invoice it reverses. Pro.
Parameters:
id(required) — string — Credit note id such as CN-2026-0001out_path— string — Name for the downloaded file, e.g. acme-credit. Defaults to the document id; the document comes back as a download link valid for one hour
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_textTurn a credit note into a plain-text summary to paste into an email: the negated line table, VAT lines, total, reason, and what now comes off the invoice. Also a .txt download link valid one hour. Free; credit_note_pdf writes the A4 document.
Parameters:
id(required) — string — Credit note id such as CN-2026-0001greeting— string — Opening line, default "Hello" plus the client namesign_off— string — Closing line, default your business name from the shared profile
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_deletedestructiveRemove one credit note never posted to its invoice and never rendered, freeing that month's slot; the invoice becomes creditable again. One with a dependent is refused: issue a fresh note to reverse a sent one.
Parameters:
id(required) — string — Credit note id such as CN-2026-0001, or an exact client name
Hints: read-only no · destructive yes · idempotent no · open-world no
purchase_order_createRaise a purchase order to a supplier from items and return its PO number and totals. unit_price is in MAJOR units; currency, VAT and the buyer block come from the shared profile. Free: 5 documents a calendar month.
Parameters:
supplier(required) — string — Supplier name or client id. A name the invoice server already knows brings its address, email and VAT id onto the orderitems(required) — array — What is being orderednotes— string — Free text printed under the totals, e.g. delivery address or termscurrency— string — Defaults to your business default currencytax_rate— number — VAT percent for lines with no rate of their own. Defaults to the business defaultissue_date— string — YYYY-MM-DD, defaults to today in your business profile's timezonesupplier_email— string — Only if the user gave it; otherwise the stored client's email is usedsupplier_vat_id— string — Supplier VAT / tax registration iddiscount_percent— number — Discount applied to every line, in percentsupplier_address— string — Postal address for the SUPPLIER block, newlines allowedexpected_delivery_date— string — YYYY-MM-DD, when the goods or work are due
Hints: read-only no · destructive no · idempotent no · open-world no
purchase_order_listList purchase orders newest first: id, supplier, order and expected delivery dates, status open, partially_received or received, currency, total and received date. Filter by status, supplier or date range.
Parameters:
to— string — YYYY-MM-DD, latest order datefrom— string — YYYY-MM-DD, earliest order datestatus— string — Default "all"supplier— string — Only orders to suppliers whose name contains this text
Hints: read-only no · destructive no · idempotent no · open-world no
purchase_order_getReturn one purchase order in full by id or exact supplier name: buyer and supplier blocks, every line with unit price and VAT, totals, the delivery date, status and every receipt with its date and note.
Parameters:
id(required) — string — Purchase order id such as PO-2026-0001, or an exact supplier name
Hints: read-only no · destructive no · idempotent no · open-world no
purchase_order_pdfCall this tool to render one purchase order as an A4 print-ready document and return a download link valid for one hour: the invoice layout titled PURCHASE ORDER, with the buyer and supplier. Pro.
Parameters:
id(required) — string — Purchase order id such as PO-2026-0001out_path— string — Name for the downloaded file, e.g. acme-credit. Defaults to the document id; the document comes back as a download link valid for one hour
Hints: read-only no · destructive no · idempotent no · open-world no
purchase_order_textTurn a purchase order into a plain-text order to paste into an email: the line table, VAT lines, total, and a line asking the supplier to deliver by the date and quote the PO number. Also a .txt download link valid one hour. Free on every tier.
Parameters:
id(required) — string — Purchase order id such as PO-2026-0001greeting— string — Opening line, default "Hello" plus the supplier namesign_off— string — Closing line, default your business name from the shared profile
Hints: read-only no · destructive no · idempotent no · open-world no
purchase_order_receiveRecord that an order arrived. partial keeps it open and can be repeated, each receipt kept with its date and note; a full receipt closes it. An order already received, or a date before the order date, is refused.
Parameters:
id(required) — string — Purchase order id such as PO-2026-0001date— string — YYYY-MM-DD, defaults to todaynote— string — What arrived, e.g. "8 of 10 units, 2 back-ordered"partial— boolean — True when only some of the order arrived. The order stays open and can be received again. Default false
Hints: read-only no · destructive no · idempotent no · open-world no
purchase_order_deletedestructiveRemove one purchase order with nothing received and never rendered, freeing that month's slot. One with a receipt is refused, naming it. The PO number is never reissued. purchase_order_receive logs arrivals.
Parameters:
id(required) — string — Purchase order id such as PO-2026-0001, or an exact supplier name
Hints: read-only no · destructive yes · idempotent no · open-world no
billing_docs_reportOver a date range: what was credited back per currency and against how many invoices, what is still on order per currency, and every open order past its delivery date with days late. Pro; the list tools are free.
Parameters:
to— string — YYYY-MM-DD, latest document date to countfrom— string — YYYY-MM-DD, earliest document date to count
Hints: read-only no · destructive no · idempotent no · open-world no
license_statusread-onlyReport this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
Hints: read-only yes · destructive no · idempotent yes · open-world no
license_activateTurn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
Parameters:
key(required) — string — License key from checkout, MCPL1.<payload>.<signature>
Hints: read-only no · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.