Install
openclaw skills install bookkeeperMeta-skill for pre-accounting automation by orchestrating gmail, deepread-ocr, stripe-api, and xero. Use when users need invoice intake from email, structured field extraction, payment verification, and accounting entry creation with reconciliation-ready status.
openclaw skills install bookkeeperAutomate preparatory bookkeeping from incoming email to accounting records.
Core objective:
This is orchestration logic across upstream tools; it is not a replacement for financial controls.
gmail (inspected latest: 1.0.6)deepread-ocr (inspected latest: 1.0.6)stripe-api (inspected latest: 1.0.8)xero (inspected latest: 1.0.4)Install/update:
npx -y clawhub@latest install gmail
npx -y clawhub@latest install deepread-ocr
npx -y clawhub@latest install stripe-api
npx -y clawhub@latest install xero
npx -y clawhub@latest update --all
MATON_API_KEY (for Gmail, Stripe, Xero through Maton gateway)DEEPREAD_API_KEY (for OCR extraction)Preflight:
echo "$MATON_API_KEY" | wc -c
echo "$DEEPREAD_API_KEY" | wc -c
If missing, stop before any bookkeeping action.
company_base_currencyinvoice_keywords (default: invoice, rechnung, receipt, quittung)vendor_rules (for example AWS -> Hosting expense account)date_tolerance_days for matching (default: 3)amount_tolerance (default: exact, or configurable small tolerance)auto_post_policy (manual-review, auto-if-high-confidence)attachment_policy (store-link, attach-binary-if-supported)Do not auto-post financial records without explicit policy.
gmail)Use for intake and attachment discovery.
Relevant behavior:
has:attachment, subject:invoice, sender filters)deepread-ocr)Use for extracting structured fields from invoice PDFs/images.
Relevant behavior:
queued -> completed/failed)hil_flag and reason for uncertaintystripe-api)Use for payment-side verification.
Relevant behavior:
xero)Use for accounting record creation and payment/reconciliation visibility.
Relevant behavior:
ACCPAY for payable bills)Scan Gmail for candidate invoice emails.
Recommended query pattern:
has:attachment (subject:invoice OR subject:rechnung OR subject:receipt OR subject:quittung)from:aws)Output:
For each invoice candidate attachment:
Minimum extracted fields:
Quality gate:
hil_flag=true, route to review queue before posting.Use Stripe to check whether corresponding payment occurred.
Matching policy:
If multiple candidates match, mark as ambiguous_match and require review.
Use Xero for booking.
Default payable flow:
Type: ACCPAY) with line item category (for example Hosting)Attachment handling:
After successful processing:
For the scenario "AWS invoice by email -> Xero + card match":
ACCPAY) under Hosting category.Normalize to one transaction record before posting:
{
"source": {
"gmail_message_id": "...",
"sender": "billing@aws.amazon.com",
"attachment_name": "invoice.pdf"
},
"invoice": {
"vendor": "AWS",
"invoice_number": "INV-123",
"invoice_date": "2024-05-01",
"total": 53.20,
"tax": 0.00,
"currency": "USD",
"ocr_confidence_ok": true
},
"payment_match": {
"provider": "stripe",
"matched": true,
"transaction_id": "ch_...",
"amount": 53.20,
"date": "2024-05-01"
},
"accounting": {
"system": "xero",
"entry_type": "ACCPAY",
"category": "Hosting",
"status": "Paid"
}
}
Always return:
IntakeSummary
ExtractionSummary
hil_flag statusPaymentVerification
AccountingAction
ReviewQueue
Before auto-posting:
hil_flag unresolvedIf any gate fails, return Needs Review and do not auto-post.
Treat these limits as mandatory operator disclosures.