agentsclimarketplace

Recurring invoicing

Skill skillim-hub/skills/recurring-invoicing

Production-grade AI agent skills & MCP servers for the Israeli market — סקילים

Install
npx -y skills add skillim-hub/skills --skill recurring-invoicing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Subscription billing and recurring invoice workflow helpers for Israeli VAT and SHAAM allocation-number compliance.

SKILL.md

8.5 KB, as published. Nobody here has run it

Recurring Invoicing Automation

Use this skill to design, validate, and operate recurring invoice workflows for Israeli small businesses, freelancers, and consumer-facing service providers. Support subscription billing, VAT calculation, invoice scheduling, credit notes, allocation-number decisions, and migration from spreadsheets or manual bookkeeping.

Operating boundaries

  • Treat generated documents as accounting document candidates until final numbering, allocation submission, and delivery are complete.
  • Verify current VAT rates, allocation thresholds, official schemas, and reporting obligations before production.
  • Use a licensed bookkeeper, certified accountant, or legal adviser for fact-specific tax and bookkeeping decisions.
  • Keep customer tax IDs, payment data, invoice details, and allocation responses protected under the organization retention and privacy policy.

Core concepts

ConceptMeaningExample
SubscriptionA recurring commercial agreement with a customerMonthly support retainer
Issue dateDate printed on the invoice and used by the helper for default VAT-rate lookup31/01/2026
Subtotal before VATAmount used for allocation-threshold decisions₪10,000.00
Tax invoiceIsraeli VAT document used for taxable B2B salestax_invoice
Tax invoice receiptCombined invoice and receipt documenttax_invoice_receipt
Allocation numberTax Authority number required for input-VAT deduction when conditions apply202606010000000001
Credit tax invoiceCorrection document for cancellation or overbillingNegative linked document

Live-validated 2026 compliance defaults

  • VAT defaults to 18 percent from 01/01/2025 onward and 17 percent before that date.
  • Allocation threshold defaults are date-effective: ₪20,000 from 01/01/2025, ₪10,000 from 01/01/2026, and ₪5,000 from 01/06/2026.
  • The old full-year 2026 threshold of ₪15,000 was corrected during the web-validated pass.
  • Official v2 SHAAM API input fields are lowercase. The package local payload is an adapter payload and must be mapped before direct Tax Authority submission.

Decision tree

flowchart TD
    A[Billing run starts] --> B{Subscription status}
    B -->|Paused| C[Skip and record reason]
    B -->|Cancelled| D[Skip or create final credit workflow]
    B -->|Active| E{Customer data valid}
    E -->|No| F[Hold invoice and correct master data]
    E -->|Yes| G[Build invoice candidate]
    G --> H{Document type}
    H -->|Receipt or pro forma| I[No allocation request by helper]
    H -->|Tax invoice or tax invoice receipt| J{Effective threshold reached}
    J -->|No| K[Issue according to policy]
    J -->|Yes| L[Submit through adapter or manual service]
    L --> M{Allocation returned}
    M -->|Yes| N[Store number, lock invoice, deliver]
    M -->|No technical error| O[Queue retry with same idempotency key]
    M -->|Substantive hold| P[Present four official alternatives]

End-to-end workflow

  1. Normalize customer records.
    • Strip formatting from Israeli tax IDs.
    • Pad IDs to 9 digits when appropriate.
    • Validate checksum for VAT-registered customers.
  2. Build a subscription.
    • Store interval, start date, end date, document type, and line items.
    • Keep pricing exclusive of VAT unless the business policy explicitly stores VAT-inclusive pricing.
  3. Generate invoice candidates.
    • Use issue date for VAT-rate lookup.
    • Calculate every line with Decimal values.
    • Store a deterministic invoice ID before any external submission.
  4. Decide whether allocation is required.
    • Use subtotal before VAT.
    • Use date-effective thresholds, not a single yearly threshold.
    • Apply document-type and customer-type rules.
  5. Submit through a registered adapter.
    • Keep the official endpoint, credentials, and field mapping outside business logic.
    • Use the same idempotency key for retries.
    • Store raw request and response bodies.
  6. Finalize and deliver.
    • Save allocation number and rightmost 9 digits when needed for printing/reporting.
    • Lock issued invoices against recalculation.
    • Correct issued errors with a credit tax invoice or another accepted correction process.

Concrete examples

Build a monthly subscription

from datetime import date
from recurring_invoicing import Customer, Interval, LineItem, Subscription, build_invoice

subscription = Subscription(
    subscription_id="SUB-2026-001",
    customer=Customer(name="Acme Israel Ltd", tax_id="514324995"),
    line_items=[LineItem(description="Monthly support", quantity="1", unit_price="10000.00")],
    start_date=date(2026, 1, 31),
    interval=Interval.MONTHLY,
)

invoice = build_invoice(subscription, date(2026, 1, 31), invoice_sequence=1)
print(invoice.to_dict())

Check allocation after the June 2026 threshold change

from datetime import date
from recurring_invoicing import should_request_allocation, threshold_for_issue_date

print(threshold_for_issue_date(date(2026, 5, 31)))
print(threshold_for_issue_date(date(2026, 6, 1)))
print(should_request_allocation(invoice, "000000018"))

Create an allocation adapter payload

from recurring_invoicing import AllocationRequest, create_shaam_allocation_payload

payload = create_shaam_allocation_payload(
    AllocationRequest(
        environment="sandbox",
        business_tax_id="000000018",
        invoice=invoice,
        client_transaction_id="TX-2026-0001",
        software_id="registered-software-id",
    )
)

Edge cases

CaseRequired handling
Subscription starts on 31/01Preserve month-end dates when configured
Paused customerSkip generation and log the reason
Customer tax ID has leading zerosNormalize to 9 digits before checksum validation
31/12/2024 issue dateUse 17 percent default VAT
01/01/2025 issue dateUse 18 percent default VAT
31/05/2026 subtotal ₪7,000Below default allocation threshold
01/06/2026 subtotal ₪7,000Above default allocation threshold
Payment received before invoiceGenerate tax invoice receipt only once after deduplication
Allocation service timeoutRetry with the same idempotency key; do not duplicate invoice
Substantive allocation holdPresent cancel, continue, reverse-charge, and hearing alternatives
Incorrect issued invoiceUse credit workflow; do not edit the locked document
Foreign customer or zero-rated transactionRequire accountant review before assuming no allocation is needed

Anti-patterns

  • Hard-code a single yearly threshold for 2026.
  • Submit the package local payload directly to SHAAM without field mapping.
  • Generate final invoice numbers before validation and allocation checks.
  • Recalculate an issued invoice after delivery.
  • Retry failed submissions with a new transaction key.
  • Store allocation responses without raw payloads.
  • Treat pro forma documents as final tax invoices.
  • Mix VAT-inclusive and VAT-exclusive prices without explicit flags.

Troubleshooting

SymptomLikely causeAction
Allocation unexpectedly requiredDate-effective threshold changed on 01/06/2026Check threshold_for_issue_date output
Allocation unexpectedly skippedReceipt or pro forma document typeConfirm document type and customer status
VAT total differs by one agorahRounding done with floatsUse Decimal and line-level rounding policy
Customer ID rejectedInvalid checksum or missing leading zerosNormalize and validate the 9-digit ID
Duplicate invoice createdPayment event and billing run both triggeredAdd idempotency by subscription, date, and sequence
API schema rejectionLocal payload sent directlyMap to current official lowercase schema

Production checklist

  • Verify VAT rate and allocation thresholds against current official Tax Authority publications.
  • Confirm SHAAM endpoint paths inside the registered developer portal.
  • Confirm document-type code mapping with the current official schema.
  • Store thresholds as effective-date configuration.
  • Run regression tests for 31/05/2026 and 01/06/2026.
  • Validate Israeli tax IDs on customer creation and before invoice generation.
  • Lock invoice documents after issue.
  • Keep retry queues idempotent.
  • Keep raw allocation requests and responses in an audit log.
  • Review privacy, retention, and access controls for invoices and tax IDs.

Gives 0 of the 12 instructions most pricing monetisation skills give

Counted across 366 of the 366 authors here whose files we hold, read 2026-08-06

  • verify webhook signaturesin 23 of 366, across 19 files
  • differentiate tiers using features, limits, or supportin 15 of 366, across 4 files
  • read product marketing context before asking questionsin 14 of 366, across 6 files
  • base price on perceived value, not costin 14 of 366, across 3 files
  • use Van Westendorp to find acceptable price rangein 14 of 366, across 3 files
  • use MaxDiff to identify highly valued featuresin 14 of 366, across 3 files
  • choose a value metric that scales with customer valuein 14 of 366, across 9 files
  • handle webhook events idempotentlyin 12 of 366, across 6 files
  • understand the upgrade context before recommendingin 11 of 366, across 4 files
  • align the pricing metric with delivered valuein 10 of 366, across 4 files
  • install stripe packagein 10 of 366, across 5 files
  • calculate unit economics metricsin 10 of 366, across 5 files

Said here and by no other author read

  • normalize customer tax ids to nine digits
  • calculate invoice lines with decimal values
  • use issue date for vat rate lookup
  • apply date-effective allocation thresholds
  • map local payload before shaam submission
  • use the same idempotency key for retries

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.