fastbill
Skill159 starsChanged 6 months agoMITView on GitHub
Work with FastBill invoices, customers, payments, reminders, and e-invoice exports through the FastBill XML API.
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 2 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Use this skill for FastBill invoices, customers, payments, reminders, and document metadata.
- Very specific: line 40
Use the helper plus built-in http_request for live API calls.
- Distinctive: line 48
Prefer invoice IDs for writes.
- Very specific: line 50
If unsure about a service or field, check https://apidocs.fastbill.com.
- Very specific: line 95
Use one targeted invoice.get.
- Very specific: line 116
Do not set INVOICE_NUMBER when creating or editing a draft title.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
FastBill
Use this skill for FastBill invoices, customers, payments, reminders, and document metadata. The helper wraps concrete FastBill API services: it serializes JSON-shaped inputs to XML and parses XML responses.
Core Rules
- Use the helper plus built-in
http_requestfor live API calls. Do not usecurl, ad hocnode -e,grep, or shell parsing for FastBill. - FastBill API URL:
https://my.fastbill.com/api/1.0/api.php. The/api/1.0/prefix is only for secret-route matching. - Basic auth is injected by the gateway from
FASTBILL_BASIC_AUTH. Never print, build, or ask for the FastBill API key. - Writes require explicit operator intent and
--operator-grant. Prefer--dry-runwhen converting free text, CSV, or time tracking into invoice data. - Prefer invoice IDs for writes. If multiple invoices/customers match, ask for the exact ID before writing.
- If unsure about a service or field, check
https://apidocs.fastbill.com.
Commands
Show commands:
node skills/fastbill/fastbill.cjs --helpBuild an http_request payload for the built-in http_request tool:
node skills/fastbill/fastbill.cjs http-request invoice.get --filter-json '{"INVOICE_ID":"123"}'
node skills/fastbill/fastbill.cjs http-request customer.create --data-json '{"CUSTOMER_TYPE":"business","ORGANIZATION":"Acme GmbH","COUNTRY_CODE":"DE"}' --operator-grantParse a saved http_request response wrapper/body:
node skills/fastbill/fastbill.cjs parse-response --body-file /tmp/fastbill-response.jsonDirect helper network calls are only for operator-controlled shell tests with a valid gateway token already exported:
node skills/fastbill/fastbill.cjs request invoice.get --filter-json '{"INVOICE_ID":"123"}'Common invoice payloads:
node skills/fastbill/fastbill.cjs http-request invoice.get --filter-json '{"END_DUE_DATE":"2026-04-08"}' --limit 100
node skills/fastbill/fastbill.cjs http-request invoice.create --data-json '{"CUSTOMER_ID":"123","INVOICE_TITLE":"Consulting Januar - Juni 2026","ITEMS":{"ITEM":[{"DESCRIPTION":"Consulting","QUANTITY":"8","UNIT_PRICE":"120.00","VAT_PERCENT":"19"}]}}' --operator-grant
node skills/fastbill/fastbill.cjs http-request invoice.update --data-json '{"INVOICE_ID":"456","INVOICE_TITLE":"YouGov SVOD Januar - Juni 2026"}' --operator-grant
node skills/fastbill/fastbill.cjs http-request invoice.setpaid --data-json '{"INVOICE_ID":"456","PAID_DATE":"2026-05-07","PAYMENT_METHOD":"bank transfer"}' --operator-grant
node skills/fastbill/fastbill.cjs http-request invoice.sendbyemail --data-json '{"INVOICE_ID":"456","RECIPIENT":{"TO":"billing@example.com"},"SUBJECT":"Payment reminder","MESSAGE":"Please review the outstanding invoice and payment status."}' --operator-grantClone / Copy Invoice
FastBill's API does not expose a dedicated invoice clone/copy service, even
though the UI has one. Implement clone as invoice.get then invoice.create.
- Use one targeted
invoice.get; prefer date, customer/project text, title, and service-period terms over broad account-wide searches. - Select one source invoice. If ambiguous, ask for the invoice ID.
- Copy relevant source fields:
CUSTOMER_ID,CUSTOMER_COSTCENTER_ID,CONTACT_ID,CURRENCY_CODE,TEMPLATE_ID/TEMPLATE_HASH,INTROTEXT,INVOICE_TITLE, references, discounts, VAT settings, andITEMS. - Omit lifecycle/source fields:
INVOICE_ID,INVOICE_NUMBER,STATE,PAID_DATE,PAYMENTS,DOCUMENT_URL,DETAILS_URL, totals, and cancellation flags. - Apply requested changes, then create the draft with
invoice.create --operator-grant. Extra reads need a concrete missing field.
Invoice Title Fields
- Invoice title field:
INVOICE_TITLEininvoice.createandinvoice.update. Do not useTITLE,NAME, orSUBJECT. - Existing draft title edit:
invoice.updatewithINVOICE_IDandINVOICE_TITLE. INTROTEXTis intro/body text before line items.ITEMS.ITEM[].DESCRIPTIONis line-item text.SUBJECTis only for email actions such asinvoice.sendbyemail.- Do not set
INVOICE_NUMBERwhen creating or editing a draft title.
Write Services
These require --operator-grant: customer.create/update/delete,
contact.create/update/delete, invoice.create/update/delete/complete/cancel/lock/sendbyemail/sendbypost/setpaid,
estimate.create/delete/sendbyemail/createinvoice, article.create/update/delete,
recurring.create/update/delete, revenue.create/setpaid/delete,
expense.create, project.create/update/delete, time.create/update/delete,
and document.create, webhook.create/delete.
Errors
- Gateway 401 mentioning
WEB_API_TOKENorGATEWAY_API_TOKEN: the request did not reach FastBill; use built-inhttp_requestin normal runtime. - Missing/forbidden secret route: fix
FASTBILL_BASIC_AUTHor its route. - FastBill 401 with
Wrong API KEY/ credentials: the route worked, but FastBill rejected the stored Basic credential.
References
- Operator setup and API notes: references/operator-setup.md
Validation
Run:
python3 skills/skill-creator/scripts/quick_validate.py skills/fastbill
node skills/fastbill/fastbill.cjs --help
node skills/fastbill/fastbill.cjs http-request invoice.get --filter-json '{"INVOICE_ID":"123"}'
node skills/fastbill/fastbill.cjs request invoice.get --filter-json '{"INVOICE_ID":"123"}' --dry-runIn this repository91 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/llm-wiki/templates/AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- 1passwordSkill
- agentic-tpmSkill
- airtableSkill
- alexaSkill
- apple-calendarSkill
- apple-musicSkill
- apple-passwordsSkill
- bahnSkill
- blinkSkill
- bookingSkill
- brand-voiceSkill
- byd-batterySkill
- channel-catchupSkill
- code-reviewSkill
- code-simplificationSkill
- current-timeSkill
- diagramSkill
- discordSkill
- distil-pii-redactorSkill
- docxSkill
- download-platform-invoicesSkill
- excalidrawSkill
- fax-sendSkill
- feature-planningSkill
- firecrawlSkill
- froniusSkill
- ga4Skill
- gh-issuesSkill
- github-pr-workflowSkill
- gogSkill
- google-adsSkill
- google-workspaceSkill
- gwsSkill
- handoff-linksSkill
- hermes3000-writingSkill
- hetzner-cloudSkill
- hetzner-dnsSkill
- hetzner-storage-boxSkill
- heygenSkill
- homematicSkill
- hubspotSkill
- hueSkill
- human-distillSkill
- hybridclaw-helpSkill
- image-generationSkill
- inbox-cleanupSkill
- iss-positionSkill
- langfuseSkill
- lexware-officeSkill
- llm-wikiSkill
- mailchimpSkill
- manim-videoSkill
- microsoft-365Skill
- miroSkill
- mittwaldSkill
- money-savingSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

