fakturoid

Czech invoicing API integration for Fakturoid. Use when the user needs to create, manage, or retrieve invoices, contacts/subjects, or expenses from Fakturoid. Supports OAuth 2.0 authentication, invoice creation with Czech tax compliance (IČO, DIČ, VAT), PDF downloads, payment tracking, expense management, inventory, recurring invoices, webhooks, and invoice templates (generators). Triggers on mentions of Fakturoid, Czech invoicing, IČO/DIČ, or invoice management tasks.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fakturoid" with this command: npx skills add majncz/fakturoid-skill/majncz-fakturoid-skill-fakturoid

Fakturoid API v3

Czech invoicing service API integration - comprehensive reference for building integrations.

Quick Start

Environment Setup

export FAKTUROID_CLIENT_ID="your-client-id"
export FAKTUROID_CLIENT_SECRET="your-client-secret"
export FAKTUROID_ACCOUNT_SLUG="your-account-slug"

Authenticate

python scripts/auth.py credentials --save

Create Invoice

python scripts/invoice.py create --subject-id 123 --lines '[
  {"name": "Consulting", "quantity": 8, "unit_name": "hours", "unit_price": 2000, "vat_rate": 21}
]'

API Basics

SettingValue
Base URLhttps://app.fakturoid.cz/api/v3
Account URLhttps://app.fakturoid.cz/api/v3/accounts/{slug}
AuthOAuth 2.0 (Client Credentials or Authorization Code)
Pagination40 records per page
Rate Limit400 requests per 60 seconds

Required Headers

User-Agent: YourAppName (your@email.com)
Authorization: Bearer {access_token}
Content-Type: application/json
Accept: application/json

Scripts Reference

Core Scripts

ScriptCommandsDescription
auth.pycredentials, refresh, revoke, statusOAuth token management
subject.pylist, get, search, create, update, delete, lookup-icoContact management
invoice.pylist, get, search, create, update, delete, action, pdf, pay, pay-deleteInvoice operations
expense.pylist, get, search, create, update, delete, action, pay, pay-deleteExpense tracking
generator.pylist, get, create, update, deleteInvoice templates

Additional Scripts

ScriptCommandsDescription
user.pyget, listUser and account info
bank_account.pylistBank account listing
inventory.pylist-items, get-item, create-item, list-moves, create-moveInventory management
recurring.pylist, get, create, update, delete, pause, activateRecurring invoices
inbox.pylist, upload, send-to-ocr, download, deleteOCR file processing
event.pylist, list-paidActivity log
todo.pylist, toggleTask management
message.pysendSend invoice emails
webhook.pylist, get, create, update, deleteWebhook management

Common Workflows

Create Invoice for New Customer

# 1. Create subject
python scripts/subject.py create --name "Acme s.r.o." --ico 12345678 --dic CZ12345678

# 2. Create invoice (use returned subject ID)
python scripts/invoice.py create --subject-id 456 --lines '[
  {"name": "Web development", "quantity": 40, "unit_name": "hours", "unit_price": 1500, "vat_rate": 21}
]'

# 3. Mark as sent and download PDF
python scripts/invoice.py action 789 mark_as_sent
python scripts/invoice.py pdf 789 --output invoice.pdf

Record Expense from Supplier

# 1. Ensure supplier exists
python scripts/subject.py create --name "Supplier Ltd" --type supplier --ico 87654321

# 2. Create expense
python scripts/expense.py create --subject-id 321 --original-number "FV-2024-0456" --lines '[
  {"name": "Office supplies", "quantity": 10, "unit_name": "ks", "unit_price": 450, "vat_rate": 21}
]'

Setup Monthly Recurring Invoice

python scripts/recurring.py create --name "Monthly Hosting" --subject-id 123 \
  --start-date 2024-02-01 --months-period 1 --send-email \
  --lines '[{"name": "Web hosting - {MMMM} {YYYY}", "unit_price": 500, "vat_rate": 21}]'

Process Inbox File with OCR

# Upload and send to OCR
python scripts/inbox.py upload invoice.pdf --send-to-ocr

# Check status
python scripts/inbox.py list

Enums Reference

Document Types

ValueCzechDescription
invoiceFakturaStandard invoice
proformaZálohová fakturaAdvance payment request
partial_proformaČástečná zálohaLegacy partial advance
correctionDobropisCredit note
tax_documentDaňový dokladTax receipt for proforma payment
final_invoiceVyúčtovací fakturaFinal invoice from tax documents

Invoice Status

ValueDescription
openNew, unpaid, not sent
sentSent to client, not overdue
overduePast due date
paidFully paid
cancelledCancelled (VAT payers only)
uncollectibleMarked as bad debt

Expense Status

ValueDescription
openReceived, not paid
overduePast due date
paidFully paid

VAT Modes

ValueCzechDescription
vat_payerPlátce DPHStandard VAT payer
non_vat_payerNeplátce DPHNon-VAT payer
identified_personIdentifikovaná osobaEU VAT identified person

VAT Price Modes

ValueDescription
without_vatPrices entered without VAT
from_total_with_vatCalculate VAT from total with VAT

VAT Rates

ValueRateDescription
standard21%Standard rate
reduced12%First reduced rate
reduced210%Second reduced rate
zero0%Zero VAT

Payment Methods

ValueDescription
bankBank transfer
cashCash payment
codCash on delivery
cardCard payment
paypalPayPal
customCustom (see custom_payment_method)

Languages

ValueLanguage
czCzech
skSlovak
enEnglish
deGerman
frFrench
itItalian
esSpanish
ruRussian
plPolish
huHungarian
roRomanian

Subject Types

ValueDescription
customerCustomer only
supplierSupplier only
bothBoth customer and supplier

Invoice Actions

ActionDescription
mark_as_sentMark invoice as sent
cancelCancel invoice
undo_cancelRevert cancellation
lockLock from editing
unlockUnlock for editing
mark_as_uncollectibleMark as bad debt
undo_uncollectibleRevert uncollectible

Expense Actions

ActionDescription
lockLock from editing
unlockUnlock for editing

OSS Modes (EU One Stop Shop)

ValueDescription
disabledOSS disabled
serviceOSS for services
goodsOSS for goods

Proforma Followup Documents

ValueDescription
final_invoice_paidAuto-create paid invoice
final_invoiceManual invoice creation
tax_documentAuto-create tax document
noneNo followup document

OCR Status

ValueDescription
createdOCR requested
processingOCR in progress
processing_failedOCR failed
processing_rejectedFile rejected
processedSuccessfully processed

Czech-Specific Fields

API FieldCzechExample
registration_noIČO12345678
vat_noDIČCZ12345678
local_vat_noSK DIČ1234567890
taxable_fulfillment_dueDUZP2024-01-15
transferred_tax_liabilityPřenesená daňová povinnosttrue
supply_codeKód předmětu plnění4

Line Item Structure

{
  "name": "Service description",
  "quantity": 10,
  "unit_name": "hours",
  "unit_price": 1500,
  "vat_rate": 21,
  "inventory_item_id": 123,
  "sku": "PROD-001"
}

Line Operations

OperationMethod
Add lineOmit id
Update lineInclude id
Delete lineInclude id and _destroy: true

References

Core Documentation

Resource Documentation

Additional Resources


Error Handling

StatusMeaningAction
400Bad RequestCheck date formats, User-Agent header
401UnauthorizedRefresh OAuth token
402Payment RequiredFakturoid account blocked
403ForbiddenPermission denied, resource limits
404Not FoundResource doesn't exist
422Validation ErrorCheck errors field for details
429Rate LimitedWait for X-RateLimit reset
503UnavailableMaintenance, retry later

Token Management

# Get new token
python scripts/auth.py credentials --save

# Check token status
python scripts/auth.py status

# Refresh expired token (Authorization Code flow)
python scripts/auth.py refresh

# Revoke token
python scripts/auth.py revoke

Token file: ~/.fakturoid/token.json


Rate Limiting

Headers on every response:

X-RateLimit-Policy: default;q=400;w=60
X-RateLimit: default;r=398;t=55
  • q=400: Max 400 requests
  • w=60: Per 60 seconds window
  • r=398: Remaining requests
  • t=55: Seconds until reset

When exceeded: 429 Too Many Requests - wait for reset.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

digisign

No summary provided by upstream source.

Repository SourceNeeds Review
General

teya

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated