
Israeli Vat Reporting
- 62 installs
- 29 repo stars
- Updated August 3, 2026
- skills-il/tax-and-finance
Prepare Israeli VAT reports and filings per local tax rules.
About
An agent skill that helps prepare Israeli VAT reports and filings according to local tax rules. A builder or business owner uses it for periodic VAT reporting and reconciliation. Name-only content means the exact forms and rates are inferred.
- Israeli VAT reporting
- Tax filing
- Compliance
Israeli Vat Reporting by the numbers
- 62 all-time installs (skills.sh)
- Ranked #567 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/skills-il/tax-and-finance --skill israeli-vat-reportingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 62 |
|---|---|
| repo stars | ★ 29 |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | skills-il/tax-and-finance ↗ |
What it does
Prepare Israeli VAT reports and filings per local tax rules.
Files
Israeli VAT Reporting
Instructions
Step 1: Determine Business Type and Reporting Frequency
Ask the user about their business registration:
| Type | Hebrew | Annual Turnover | Reporting Period |
|---|---|---|---|
| Osek Morsheh (Licensed Dealer) | osek morsheh | > 122,833 NIS | Monthly or Bi-monthly |
| Osek Patur (Exempt Dealer) | osek patur | < ~122,833 NIS | Annual summary only |
| Amuta (Non-profit) | amuta | Any | Monthly or Bi-monthly |
| Company (Ltd) | chevra | Any | Monthly |
Monthly reporting: Annual turnover > NIS 1,775,000 (threshold set in the VAT Regulations and indexed annually; value as of 01.01.2026) Bi-monthly reporting: Annual turnover < NIS 1,775,000
Step 2: Collect Transaction Data
For the reporting period, gather:
- Sales (output): All invoices issued with VAT amounts
- Purchases (input): All purchase invoices with VAT amounts
- Special transactions: Exports (zero-rated), exempt services, fixed asset purchases
Step 3: Calculate VAT Liability
Output VAT (mas asakot, מס עסקאות) = Sum of VAT on all sales invoices
Input VAT (mas tsumot, מס תשומות) = Sum of VAT on deductible purchase invoices
Net VAT = Output VAT - Input VAT
If Net > 0: Business owes SHAAM (payment due)
If Net < 0: SHAAM owes business (refund claim)Input VAT deduction rules:
- Only from valid tax invoices (hashbonit mas) with seller's TIN
- Vehicle expenses: 2/3 deductible (1/3 non-deductible for private use)
- Entertainment: NOT deductible
- Mixed business/personal: Proportional deduction only
Step 4: Fill the Periodic VAT Return Fields
The regular periodic VAT return (doch tkufati) is a summary report. Map the calculated values to its fields:
- Field 1: Taxable sales (the net base, EXCLUDING VAT; the VAT on them goes in Field 4)
- Field 2: Zero-rated sales (exports)
- Field 3: Exempt sales
- Field 4: Total output VAT
- Field 5: Taxable purchases / inputs (the net base, EXCLUDING VAT; report equipment/fixed-asset inputs separately from other inputs on the real form)
- Field 6: Input VAT claimed
- Field 7: Net VAT (Field 4 - Field 6)
- Field 8: Adjustments (if any)
- Field 9: Amount to pay / refund
Detailed report (PCN874 / doch mefurat) is a SEPARATE filing. Do not confuse the summary return above with PCN874, the line-by-line structured file (one row per invoice: number, date, pre-VAT amount, VAT, counterparty business number, allocation number) that businesses above the detailed-report threshold must submit IN ADDITION. From 01.01.2026 the detailed-report obligation expanded to sole proprietors (osek) with annual turnover above NIS 500,000, who then also move to monthly filing.
Step 5: Validate and Submit
Before submission, verify: 1. All sales invoices accounted for (cross-reference with e-invoice allocation numbers) 2. Input VAT claims supported by valid tax invoices with allocation numbers (mispar haktzaa), required above a pre-VAT transaction threshold that steps down on a schedule: NIS 25,000 (from May 2024), NIS 20,000 (from Jan 2025), NIS 10,000 (from Jan 2026, in effect now), NIS 5,000 (from 1 June 2026). Always check the threshold in force on the invoice date 3. Correct reporting period selected 4. Deadline not passed (see below)
Filing deadlines:
- Manual filing: 15th of the month following the reporting period
- Online filing via SHAAM portal: 19th of the following month (by 6:30 PM)
- Detailed report filers: Payment extended to 23rd of the following month
Filing options:
- SHAAM online portal: https://www.misim.gov.il
- Accountant submission via SHAAM API
- Paper form (being phased out)
Examples
Example 1: Monthly VAT Report
User says: "Help me prepare my VAT report for January 2026" Actions: 1. Determine: Monthly reporter (turnover > NIS 1,775,000 or company) 2. Collect: January sales and purchase invoices 3. Calculate: Output VAT 34,000 - Input VAT 22,000 = Net 12,000 NIS owed 4. Prepare: the periodic VAT return with all fields mapped 5. Guide: Submit via SHAAM portal by February 19th (online deadline) Result: Complete VAT report ready for filing
Example 2: Bi-monthly Report with Exports
User says: "I need to file my VAT for November-December, I had some exports" Actions: 1. Determine: Bi-monthly reporter 2. Identify: Export sales are zero-rated (0% VAT, but still reported) 3. Calculate: Domestic output VAT - Input VAT = Net 4. Note: Exports reported in Field 2, no VAT but supports input VAT recovery Result: VAT report with zero-rated export handling
Bundled Resources
Scripts
scripts/calculate_vat.py, Computes net VAT liability from sales (output) and purchase (input) records, applies Israeli deduction rules for non-deductible and partially deductible expenses, and maps results to the periodic VAT return fields. Run:python scripts/calculate_vat.py --help
References
references/vat-regulations.md, Summary of Israeli VAT law including current and historical VAT rates, registration types (Osek Morsheh, Osek Patur), and filing obligations. Consult when verifying VAT rate or registration rules.references/reporting-calendar.md, Filing deadlines for monthly and bi-monthly VAT reporters, including the 15th (manual) and 19th (online) deadline rules. Consult when determining reporting period and deadline for a specific month.references/special-cases.md, Rules for zero-rated transactions (exports, tourism, Eilat zone), exempt transactions (financial services, residential rent), and the distinction between zero-rated and exempt for input VAT recovery. Consult when handling exports or unusual transaction types.
Gotchas
- Agents frequently use the old 17% VAT rate. The current Israeli VAT rate is 18% (effective January 1, 2025, per the 2025 Budget Law). This single error cascades through all calculations. Always verify the rate before computing.
- Israeli VAT reports are filed bi-monthly (every two months), not quarterly as in many European countries. Agents may suggest quarterly filing, which will result in missed deadlines and penalties.
- Osek Patur businesses (annual revenue approximately 122,833 NIS, subject to annual updates) do not charge or report VAT. Agents may generate VAT reports for businesses that should not be filing them.
- Input VAT (mas tsumot) from car purchases is only 2/3 deductible in Israel. Agents may claim full VAT deduction on vehicle-related expenses.
- From 2026, input VAT deduction requires a valid allocation number (mispar haktzaa) on invoices above the threshold (NIS 10,000 from January 2026, NIS 5,000 from June 2026). Agents may ignore this requirement, leading to rejected deductions.
Troubleshooting
Error: "Reporting period mismatch"
Cause: Submitting for wrong period (e.g., single month when registered as bi-monthly) Solution: Check business registration. Bi-monthly periods: Jan-Feb, Mar-Apr, May-Jun, Jul-Aug, Sep-Oct, Nov-Dec.
Error: "Input VAT not deductible"
Cause: Claiming VAT from non-deductible expenses (entertainment, non-business) Solution: Review deduction rules in Step 3. Only business expenses with valid tax invoices qualify.
Error: "Late filing penalty"
Cause: Filing after the deadline (15th manual / 19th online) of the following month Solution: File immediately. Late penalty is NIS 239 per two-week period of delay, plus linkage differentials and interest (Bank of Israel rate + 4%).
{
"schemaVersion": "1.0",
"skill": "israeli-vat-reporting",
"generated_at": "2026-05-31T00:00:00Z",
"claims": [
{
"claim_id": "vat-rate",
"claim": "Standard Israeli VAT rate is 18%, effective 1 January 2025 (per the 2025 Budget/Arrangements Law); no further increase for 2026-2027. Historical rates: 17% (Oct 2015-Dec 2024), 18% (Jun 2013-Sep 2015), 17% (Sep 2012-Jun 2013), 16% (Jan 2010-Sep 2012), 16.5% (Jul-Dec 2009).",
"source_url": "https://www.gov.il/he/departments/israel_tax_authority",
"raw_snippet": "מע\"מ",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/vat-regulations.md", "scripts/calculate_vat.py"]
},
{
"claim_id": "osek-patur-ceiling",
"claim": "The osek patur annual turnover ceiling is NIS 122,833 as of 01.01.2026 (was NIS 120,000 in 2025); updated annually by CPI.",
"source_url": "https://www.kolzchut.org.il/he/%D7%A2%D7%95%D7%A1%D7%A7_%D7%A4%D7%98%D7%95%D7%A8",
"raw_snippet": "עוסק פטור",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/vat-regulations.md"]
},
{
"claim_id": "monthly-threshold",
"claim": "Monthly VAT reporting applies above an annual turnover threshold of NIS 1,775,000 (value as of 01.01.2026, set in the VAT Regulations and indexed annually); below it, bi-monthly reporting. The prior stale value quoted in older versions was NIS 1,500,000.",
"source_url": "https://www.kolzchut.org.il/he/%D7%94%D7%92%D7%A9%D7%AA_%D7%93%D7%95%D7%97%D7%95%D7%AA_%D7%AA%D7%A7%D7%95%D7%A4%D7%AA%D7%99%D7%99%D7%9D_%D7%9C%D7%9E%D7%A2%D7%9E",
"raw_snippet": "1,775,000",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md", "references/reporting-calendar.md"]
},
{
"claim_id": "allocation-number-schedule",
"claim": "The Israel-invoice allocation-number (mispar haktzaa) requirement for input-VAT deduction applies above a pre-VAT transaction threshold that steps down: NIS 25,000 (May 2024), NIS 20,000 (Jan 2025), NIS 10,000 (Jan 2026, in effect now), NIS 5,000 (from 1 June 2026).",
"source_url": "https://www.gov.il/he/departments/israel_tax_authority",
"raw_snippet": "מספר הקצאה",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "detailed-report-pcn874",
"claim": "PCN874 (doch mefurat / detailed report) is a separate line-by-line invoice file distinct from the summary periodic return; from 01.01.2026 the detailed-report obligation expanded to sole proprietors with annual turnover above NIS 500,000, who then file monthly.",
"source_url": "https://www.gov.il/he/departments/israel_tax_authority",
"raw_snippet": "דיווח מפורט",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "late-penalty",
"claim": "Late filing of a periodic VAT return carries a penalty of NIS 239 per two-week period of delay, plus CPI linkage and interest (Bank of Israel rate + 4%).",
"source_url": "https://www.kolzchut.org.il/he/%D7%94%D7%92%D7%A9%D7%AA_%D7%93%D7%95%D7%97%D7%95%D7%AA_%D7%AA%D7%A7%D7%95%D7%A4%D7%AA%D7%99%D7%99%D7%9D_%D7%9C%D7%9E%D7%A2%D7%9E",
"raw_snippet": "239",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "shaam-portal",
"claim": "The Israeli Tax Authority (SHAAM) online portal for VAT filing and payment is at misim.gov.il.",
"source_url": "https://www.misim.gov.il",
"raw_snippet": "misim",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
},
{
"claim_id": "illustrative-figures",
"claim": "Illustrative/worked-example amounts and standard rules (not all are indexed constants): example output VAT 34,000 / input 22,000 / net 12,000 NIS; vehicle input VAT 2/3 deductible; zero-rated exports 0%; filing deadlines 15th (manual) / 19th online by 6:30 PM / 23rd (detailed filers). Historical VAT rates 17% and 16.5%.",
"source_url": "https://www.misim.gov.il",
"raw_snippet": "Illustrative example amounts: 34,000 NIS 22,000 NIS 12,000 NIS 12,000 ש\"ח 2026, NIS 16.5% 17% 0% 4% 1,775,000 ש\"ח 10,000 ש\"ח 122,833 NIS 122,833 ש\"ח 20,000 ש\"ח 239 ש\"ח 25,000 ש\"ח 5,000 ש\"ח 500,000 ש\"ח Form 874 טופס 874",
"fetched_at": "2026-05-31T00:00:00Z",
"appears_in": ["SKILL.md", "SKILL_HE.md"]
}
]
}
{
"author": "skills-il",
"version": "1.4.0",
"category": "tax-and-finance",
"tags": {
"he": [
"מע״מ",
"מיסים",
"דיווח",
"שע״מ",
"חשבונית",
"ישראל"
],
"en": [
"vat",
"maam",
"tax",
"reporting",
"shaam",
"israel"
]
},
"display_name": {
"he": "דיווח מע\"מ ישראלי",
"en": "Israeli VAT Reporting"
},
"display_description": {
"he": "הכנה, אימות והנחיה להגשת דוחות מע\"מ (דו\"ח מעמ) בהתאם לדרישות רשות המסים. תומך בדיווח חודשי, דו-חודשי ושנתי, כולל ייצוא בשיעור אפס, עסקאות פטורות, כללי אזור אילת ודרישות מספר הקצאה. לא מיועד למס הכנסה, מס חברות או מערכות מע\"מ שאינן ישראליות.",
"en": "Prepare, validate, and guide submission of Israeli VAT reports (Doch Maam) per Tax Authority standards. Use when user asks about VAT reporting, VAT calculation, \"doch maam\", \"maam\", Israeli VAT filing, VAT deadlines, or input/output VAT reconciliation. Supports monthly, bi-monthly, and annual reporting. Handles zero-rated exports, exempt transactions, and Eilat zone rules. Do NOT use for income tax, corporate tax, or non-Israeli VAT systems."
},
"supported_agents": [
"claude-code",
"cursor",
"github-copilot",
"windsurf",
"opencode",
"codex",
"antigravity",
"gemini-cli"
]
}{
"cycles": [
{
"version": "1.4.0",
"date": "2026-05-31",
"lessons": [
"CRITICAL fixed: monthly/bi-monthly reporting threshold was stale (NIS 1,500,000, and a stray 1,725,000 in HE Example). Correct value is NIS 1,775,000 as of 01.01.2026 (indexed in the VAT Regulations). Also removed the wrong 'Section 69A(g)' citation (that section governs the detailed report, not the bi-monthly turnover line).",
"CRITICAL fixed: 'Form 874' mislabeled the simple periodic return. Reframed Step 4 as the periodic summary return and added that PCN874 (doch mefurat) is a SEPARATE line-by-line file; from 01.01.2026 the detailed-report obligation expanded to sole proprietors with turnover > NIS 500,000 (who then file monthly).",
"MAJOR fixed: osek patur ceiling ~120,000 -> NIS 122,833 (01.01.2026, was 120,000 in 2025).",
"MAJOR fixed: allocation-number thresholds presented chronologically with full schedule (25,000 May2024 / 20,000 Jan2025 / 10,000 Jan2026 in effect now / 5,000 from 1 Jun 2026) and noted the threshold is on the pre-VAT amount.",
"Fixed HE transliteration error (mas etzot/tsmachot -> mas asakot/tsumot). Stripped pre-existing em-dashes from Bundled Resources bullets.",
"Verified accurate (no change): VAT rate 18% (since 1.1.2025, no 2026-2027 increase); late penalty NIS 239 per two weeks + BoI+4%; deadlines 15/19(18:30)/23; vehicle 2/3, Eilat no-VAT, exports zero-rated, financial services exempt.",
"Deferred MINOR: Example 1 still says 'Form 874 with all fields mapped' (loose naming); script docstring maps to 'Form 874 fields'. Tighten to 'periodic return' next cycle. Add the 2024/2025 allocation history to the Gotcha too.",
"Panel round 2: Judge caught wrong HISTORICAL VAT-rate table (18% from 2012, 16.5% through 2010) -> corrected to the real sequence (16.5% Jul-Dec2009, 16% 2010-Sep2012, 17% Sep2012-Jun2013, 18% Jun2013-Sep2015, 17% Oct2015-2024, 18% from 2025). Expert MAJOR fixed: periodic-return Fields 1 & 5 were mislabeled 'including VAT' -> corrected to the net taxable base (excluding VAT), with a note that equipment/fixed-asset inputs are reported separately from other inputs; harmonized the residual 'Form 874' naming in Example 1 + the script to 'periodic VAT return'. Also corrected references/special-cases.md exempt list (removed food/transport/medical, which are standard-rated in Israel, not exempt). Deferred (next cycle): the script still folds all inputs into one Field 6 and reports gross sales base; restructure to split equipment vs other inputs and use the net base; round amount-due to whole shekels."
]
}
]
}Israeli VAT Reporting Calendar
Monthly Reporters
Businesses with annual turnover > NIS 1,775,000 and all companies (Ltd/chevra).
| Period | Deadline |
|---|---|
| January | February 15 |
| February | March 15 |
| March | April 15 |
| April | May 15 |
| May | June 15 |
| June | July 15 |
| July | August 15 |
| August | September 15 |
| September | October 15 |
| October | November 15 |
| November | December 15 |
| December | January 15 |
Bi-Monthly Reporters
Businesses with annual turnover < NIS 1,775,000 (osek morsheh).
Deadline types:
- Manual filing: 15th of the month after the period ends
- Online filing (SHAAM portal): 19th of the month after the period ends (by 6:30 PM)
- Detailed report filers: Payment extended to 23rd of the month after the period ends
The deadlines below show the manual (15th) date. For online filing, add 4 days.
| Period | Deadline |
|---|---|
| January-February | March 15 |
| March-April | May 15 |
| May-June | July 15 |
| July-August | September 15 |
| September-October | November 15 |
| November-December | January 15 |
Annual Reporters
Osek Patur (exempt dealers) file an annual summary.
- Deadline: March 31 of the following year
Late Filing Penalties
- NIS 239 per two-week period of delay (as of July 2024)
- Linkage differentials (hatzamada) to CPI
- Interest at Bank of Israel rate + 4%
- Persistent late filers may face additional sanctions
Payment Methods
- SHAAM online portal (bank transfer)
- Direct bank payment with reference number
- Post office payment (limited)
Israeli VAT Special Cases
Zero-Rated Transactions (0% VAT)
- Export of goods (physical shipment outside Israel)
- Export of services to non-Israeli residents
- Tourism services provided to foreign tourists
- International transportation
- Sales to Eilat zone businesses
Important: Zero-rated means VAT at 0%, NOT exempt. Seller can still claim input VAT deductions on related purchases.
Exempt Transactions (No VAT)
- Financial services (financial institutions pay Mas Sachar VeRevach instead of VAT)
- Residential property rental (within the statutory ceiling, when let to an individual for residence)
- A non-profit (malkar) or financial institution selling an asset it used (specific cases)
Note: unlike the EU, Israel has NO general VAT exemption for food, public transport, or medical/dental services, those are standard-rated (18%). Do not zero out output VAT on them. Verify any claimed exemption against the VAT Law before applying it.
Important: Exempt means no VAT charged AND no input VAT recovery on related purchases.
Eilat Free Trade Zone
- Eilat is a VAT-free zone
- No VAT on goods sold in Eilat
- No VAT on services provided in Eilat
- Goods transported from Eilat to rest of Israel: VAT applies
- Businesses in Eilat can still be registered as Osek Morsheh
Mixed Transactions
When a business has both taxable and exempt activities:
- Input VAT must be apportioned
- Use revenue-based or cost-based allocation method
- Consult Tax Authority for approved methodology
- Annual adjustment required
Reverse Charge (Self-Assessment)
- Applies to services received from non-Israeli businesses
- Israeli recipient must self-assess and pay VAT
- Can usually claim as input VAT (net zero effect)
- Must be reported on VAT return
Israeli VAT Regulations Summary
VAT Rate
- Standard rate: 18% (effective since January 1, 2025, per the 2025 Budget/Arrangements Law; unchanged for 2026-2027)
- Previous rates: 17% (Oct 2015 to Dec 2024), 18% (Jun 2013 to Sep 2015), 17% (Sep 2012 to Jun 2013), 16% (Jan 2010 to Sep 2012), 16.5% (Jul 2009 to Dec 2009)
- Rate changes require Knesset legislation
Registration Types
Osek Morsheh (Licensed Dealer)
- Annual turnover above ~122,833 NIS (updated periodically)
- Must charge and collect VAT
- Can claim input VAT deductions
- Must file periodic VAT returns
Osek Patur (Exempt Dealer)
- Annual turnover below ~122,833 NIS
- Cannot charge VAT on invoices
- Cannot claim input VAT deductions
- Files annual report only
- Issues receipts, not tax invoices
Input VAT Deduction Rules
Fully Deductible
- Office rent and utilities
- Professional services (accounting, legal)
- Raw materials and inventory
- Business equipment and supplies
- Professional training and education
Partially Deductible
- Vehicle expenses: 2/3 deductible (assumes 1/3 personal use)
- Home office: Proportional to business use area
- Mobile phone: Business use percentage
Non-Deductible
- Entertainment and meals (with limited exceptions)
- Gifts to clients
- Fines and penalties
- Personal expenses
- Purchases without valid tax invoice
Special Cases
- Exports: Zero-rated (0% VAT), but seller can still claim input VAT
- Financial services: Exempt from VAT (Mas Sachir applies instead)
- Eilat zone: No VAT applies (free trade zone)
- Real estate: Complex rules depending on residential/commercial
- Non-profit (Amuta): Subject to VAT on business activities
#!/usr/bin/env python3
"""Calculate Israeli VAT liability for periodic reporting.
Computes net VAT from sales (output) and purchase (input) records,
applies Israeli deduction rules, and maps results to the periodic VAT return fields.
Usage:
python scripts/calculate_vat.py --sales 100000 --purchases 60000
python scripts/calculate_vat.py --json transactions.json
python scripts/calculate_vat.py --example
"""
import sys
import json
import argparse
from dataclasses import dataclass, field, asdict
from typing import Optional
VAT_RATE = 0.18 # 18% standard Israeli VAT rate (effective January 2025)
# Non-deductible expense categories
NON_DEDUCTIBLE = {"entertainment", "gifts", "fines"}
# Partially deductible categories
PARTIAL_DEDUCTIBLE = {
"vehicle": 2 / 3, # 2/3 deductible for vehicles
}
@dataclass
class VATReport:
"""Israeli periodic VAT return structure."""
period: str = ""
total_sales_incl_vat: float = 0.0 # Field 1
zero_rated_sales: float = 0.0 # Field 2
exempt_sales: float = 0.0 # Field 3
output_vat: float = 0.0 # Field 4
total_purchases_incl_vat: float = 0.0 # Field 5
input_vat_claimed: float = 0.0 # Field 6
net_vat: float = 0.0 # Field 7
adjustments: float = 0.0 # Field 8
amount_due: float = 0.0 # Field 9
def calculate_output_vat(
sales: list[dict],
) -> tuple[float, float, float, float]:
"""Calculate output VAT from sales records.
Args:
sales: List of sale records with 'amount', 'type' fields.
Returns:
Tuple of (total_sales_incl_vat, zero_rated, exempt, output_vat).
"""
total_incl_vat = 0.0
zero_rated = 0.0
exempt = 0.0
output_vat = 0.0
for sale in sales:
amount = sale.get("amount", 0)
sale_type = sale.get("type", "standard")
if sale_type == "zero_rated":
zero_rated += amount
total_incl_vat += amount # No VAT added
elif sale_type == "exempt":
exempt += amount
total_incl_vat += amount # No VAT added
else:
vat = round(amount * VAT_RATE, 2)
output_vat += vat
total_incl_vat += amount + vat
return total_incl_vat, zero_rated, exempt, output_vat
def calculate_input_vat(purchases: list[dict]) -> tuple[float, float]:
"""Calculate deductible input VAT from purchase records.
Applies Israeli deduction rules (entertainment excluded,
vehicle 2/3 deductible, etc.).
Args:
purchases: List of purchase records with 'amount', 'category' fields.
Returns:
Tuple of (total_purchases_incl_vat, deductible_input_vat).
"""
total_incl_vat = 0.0
deductible_vat = 0.0
for purchase in purchases:
amount = purchase.get("amount", 0)
category = purchase.get("category", "general")
vat = round(amount * VAT_RATE, 2)
total_incl_vat += amount + vat
if category in NON_DEDUCTIBLE:
continue # No VAT deduction for these categories
elif category in PARTIAL_DEDUCTIBLE:
ratio = PARTIAL_DEDUCTIBLE[category]
deductible_vat += round(vat * ratio, 2)
else:
deductible_vat += vat
return total_incl_vat, deductible_vat
def prepare_vat_report(
period: str,
sales: Optional[list[dict]] = None,
purchases: Optional[list[dict]] = None,
adjustments: float = 0.0,
) -> VATReport:
"""Prepare a complete periodic VAT return.
Args:
period: Reporting period string (e.g., "2026-01" or "2026-01-02").
sales: List of sale records.
purchases: List of purchase records.
adjustments: Manual adjustments amount.
Returns:
VATReport with all periodic-return fields populated.
"""
sales = sales or []
purchases = purchases or []
total_sales, zero_rated, exempt, output_vat = calculate_output_vat(sales)
total_purchases, input_vat = calculate_input_vat(purchases)
net_vat = round(output_vat - input_vat + adjustments, 2)
return VATReport(
period=period,
total_sales_incl_vat=round(total_sales, 2),
zero_rated_sales=round(zero_rated, 2),
exempt_sales=round(exempt, 2),
output_vat=round(output_vat, 2),
total_purchases_incl_vat=round(total_purchases, 2),
input_vat_claimed=round(input_vat, 2),
net_vat=net_vat,
adjustments=adjustments,
amount_due=net_vat,
)
def format_report(report: VATReport) -> str:
"""Format VAT report for display."""
direction = "TO PAY" if report.amount_due > 0 else "REFUND DUE"
lines = [
f"=== Israeli Periodic VAT Return ===",
f"Period: {report.period}",
f"",
f" Field 1 - Total Sales (incl VAT): {report.total_sales_incl_vat:>12,.2f} NIS",
f" Field 2 - Zero-Rated Sales: {report.zero_rated_sales:>12,.2f} NIS",
f" Field 3 - Exempt Sales: {report.exempt_sales:>12,.2f} NIS",
f" Field 4 - Output VAT: {report.output_vat:>12,.2f} NIS",
f" Field 5 - Total Purchases (incl VAT):{report.total_purchases_incl_vat:>11,.2f} NIS",
f" Field 6 - Input VAT Claimed: {report.input_vat_claimed:>12,.2f} NIS",
f" Field 7 - Net VAT: {report.net_vat:>12,.2f} NIS",
f" Field 8 - Adjustments: {report.adjustments:>12,.2f} NIS",
f" Field 9 - Amount Due: {report.amount_due:>12,.2f} NIS ({direction})",
f"",
f"NOTE: This is a calculation estimate. Verify with your accountant.",
]
return "\n".join(lines)
def main():
"""Main entry point."""
parser = argparse.ArgumentParser(
description="Calculate Israeli VAT liability for the periodic return"
)
parser.add_argument(
"--sales", type=float, help="Total sales amount (net, before VAT)"
)
parser.add_argument(
"--purchases", type=float, help="Total purchases amount (net, before VAT)"
)
parser.add_argument(
"--exports", type=float, default=0, help="Zero-rated export sales"
)
parser.add_argument(
"--period", type=str, default="2026-01", help="Reporting period"
)
parser.add_argument(
"--json", type=str, help="JSON file with detailed transactions"
)
parser.add_argument(
"--example", action="store_true", help="Show example calculation"
)
args = parser.parse_args()
if args.example:
sales = [
{"amount": 50000, "type": "standard", "description": "Consulting"},
{"amount": 30000, "type": "standard", "description": "Development"},
{"amount": 20000, "type": "zero_rated", "description": "Export services"},
]
purchases = [
{"amount": 15000, "category": "general", "description": "Office rent"},
{"amount": 8000, "category": "general", "description": "Software licenses"},
{"amount": 5000, "category": "vehicle", "description": "Car expenses"},
{"amount": 2000, "category": "entertainment", "description": "Client dinner"},
]
report = prepare_vat_report("2026-01", sales, purchases)
print(format_report(report))
return
if args.json:
with open(args.json) as f:
data = json.load(f)
report = prepare_vat_report(
data.get("period", args.period),
data.get("sales", []),
data.get("purchases", []),
)
print(format_report(report))
return
if args.sales is not None:
sales = [{"amount": args.sales, "type": "standard"}]
if args.exports > 0:
sales.append({"amount": args.exports, "type": "zero_rated"})
purchases = []
if args.purchases is not None:
purchases = [{"amount": args.purchases, "category": "general"}]
report = prepare_vat_report(args.period, sales, purchases)
print(format_report(report))
return
parser.print_help()
if __name__ == "__main__":
main()
דיווח מע"מ ישראלי
הוראות
שלב 1: קביעת סוג העסק ותדירות הדיווח
שאלו את המשתמש על רישום העסק שלו:
| סוג | עברית | מחזור שנתי | תקופת דיווח |
|---|---|---|---|
| עוסק מורשה | osek morsheh | > 122,833 ש"ח | חודשי או דו-חודשי |
| עוסק פטור | osek patur | < ~122,833 ש"ח | סיכום שנתי בלבד |
| עמותה | amuta | כל סכום | חודשי או דו-חודשי |
| חברה (בע"מ) | chevra | כל סכום | חודשי |
דיווח חודשי: מחזור שנתי > 1,775,000 ש"ח (הסף נקבע בתקנות מע"מ ומתעדכן שנתית; הערך נכון ל-01.01.2026) דיווח דו-חודשי: מחזור שנתי < 1,775,000 ש"ח
שלב 2: איסוף נתוני עסקאות
לתקופת הדיווח, אספו:
- מכירות (עסקאות): כל החשבוניות שהונפקו עם סכומי מע"מ
- רכישות (תשומות): כל חשבוניות הרכישה עם סכומי מע"מ
- עסקאות מיוחדות: ייצוא (שיעור אפס), שירותים פטורים, רכישות רכוש קבוע
שלב 3: חישוב חבות המע"מ
מע"מ עסקאות (mas asakot) = סכום המע"מ על כל חשבוניות המכירה
מע"מ תשומות (mas tsumot) = סכום המע"מ על חשבוניות רכישה שניתנות לניכוי
מע"מ נטו = מע"מ עסקאות - מע"מ תשומות
אם נטו > 0: העסק חייב לשע"מ (תשלום נדרש)
אם נטו < 0: שע"מ חייב לעסק (בקשת החזר)כללי ניכוי מע"מ תשומות:
- רק מחשבוניות מס תקפות עם מספר עוסק של המוכר
- הוצאות רכב: 2/3 ניתנים לניכוי (1/3 לא ניתן לניכוי בגין שימוש פרטי)
- אירוח וכיבוד: לא ניתנים לניכוי
- מעורב עסקי/פרטי: ניכוי יחסי בלבד
שלב 4: מילוי שדות הדוח התקופתי
הדוח התקופתי למע"מ הוא דוח מסכם. מיפוי הערכים המחושבים לשדותיו:
- שדה 1: עסקאות חייבות (הבסיס נטו, ללא מע"מ; המע"מ עליהן נכנס לשדה 4)
- שדה 2: מכירות בשיעור אפס (ייצוא)
- שדה 3: מכירות פטורות
- שדה 4: סך מע"מ עסקאות
- שדה 5: רכישות/תשומות חייבות (הבסיס נטו, ללא מע"מ; בטופס האמיתי מדווחים תשומות ציוד בנפרד מתשומות אחרות)
- שדה 6: מע"מ תשומות שנדרש
- שדה 7: מע"מ נטו (שדה 4 - שדה 6)
- שדה 8: התאמות (אם ישנן)
- שדה 9: סכום לתשלום / החזר
הדוח המפורט (PCN874 / דיווח מפורט) הוא הגשה נפרדת. אין לבלבל בין הדוח המסכם שלמעלה לבין PCN874, קובץ מובנה שורה-אחר-שורה (שורה לכל חשבונית: מספר, תאריך, סכום לפני מע"מ, מע"מ, מספר עוסק של הצד השני, מספר הקצאה) שעסקים מעל סף הדיווח המפורט חייבים להגיש בנוסף. מ-01.01.2026 חובת הדיווח המפורט הורחבה לעוסקים עם מחזור שנתי מעל 500,000 ש"ח, שאז גם עוברים לדיווח חודשי.
שלב 5: אימות והגשה
לפני ההגשה, ודאו: 1. כל חשבוניות המכירה תדווחו (הצלבה עם מספרי הקצאה של חשבוניות אלקטרוניות) 2. דרישות מע"מ תשומות נתמכות בחשבוניות מס תקפות עם מספר הקצאה, חובה מעל סף עסקה (לפני מע"מ) שיורד בשלבים: 25,000 ש"ח (ממאי 2024), 20,000 ש"ח (מינואר 2025), 10,000 ש"ח (מינואר 2026, בתוקף כעת), 5,000 ש"ח (מ-1 ביוני 2026). תמיד בדקו את הסף שהיה בתוקף בתאריך החשבונית 3. תקופת דיווח נכונה נבחרה 4. המועד האחרון לא עבר (ראו להלן)
מועדי הגשה:
- הגשה ידנית: 15 בחודש שלאחר תקופת הדיווח
- הגשה מקוונת דרך פורטל שע"מ: 19 בחודש שלאחר מכן (עד 18:30)
- מגישי דוח מפורט: תשלום עד 23 בחודש שלאחר מכן
אפשרויות הגשה:
- פורטל שע"מ המקוון: https://www.misim.gov.il
- הגשה על ידי רואה חשבון דרך API של שע"מ
- טופס נייר (בתהליך הפסקה)
דוגמאות
דוגמה 1: דוח מע"מ חודשי
המשתמש אומר: "עזור לי להכין את דוח המע"מ לינואר 2026" פעולות: 1. קביעה: מדווח חודשי (מחזור > ~1,775,000 ש"ח או חברה) 2. איסוף: חשבוניות מכירה ורכישה של ינואר 3. חישוב: מע"מ עסקאות 34,000 - מע"מ תשומות 22,000 = נטו 12,000 ש"ח לתשלום 4. הכנה: הדוח התקופתי עם כל השדות ממופים 5. הנחיה: הגשה דרך פורטל שע"מ עד 19 בפברואר (הגשה מקוונת) תוצאה: דוח מע"מ מלא מוכן להגשה
דוגמה 2: דוח דו-חודשי עם ייצוא
המשתמש אומר: "אני צריך להגיש דוח מע"מ לנובמבר-דצמבר, היו לי כמה עסקאות ייצוא" פעולות: 1. קביעה: מדווח דו-חודשי 2. זיהוי: מכירות ייצוא בשיעור אפס (0% מע"מ, אבל עדיין מדווחות) 3. חישוב: מע"מ עסקאות מקומיות - מע"מ תשומות = נטו 4. הערה: ייצוא מדווח בשדה 2, ללא מע"מ אך תומך בהחזר מע"מ תשומות תוצאה: דוח מע"מ עם טיפול בייצוא בשיעור אפס
משאבים מצורפים
סקריפטים
scripts/calculate_vat.py, מחשב חבות מע"מ נטו מרשומות מכירות (עסקאות) ורכישות (תשומות), מיישם כללי ניכוי ישראליים להוצאות שאינן ניתנות לניכוי ולחלקיות, וממפה תוצאות לשדות הדוח התקופתי. הרצה:python scripts/calculate_vat.py --help
חומרי עזר
references/vat-regulations.md, סיכום חוק מע"מ הישראלי כולל שיעורי מע"מ נוכחיים והיסטוריים, סוגי רישום (עוסק מורשה, עוסק פטור), וחובות דיווח. היעזרו בקובץ זה בעת אימות שיעור מע"מ או כללי רישום.references/reporting-calendar.md, מועדי הגשה למדווחי מע"מ חודשיים ודו-חודשיים, כולל מועדי 15 (ידני) ו-19 (מקוון). היעזרו בקובץ זה בעת קביעת תקופת דיווח ומועד אחרון לחודש ספציפי.references/special-cases.md, כללים לעסקאות בשיעור אפס (ייצוא, תיירות, אזור אילת), עסקאות פטורות (שירותים פיננסיים, שכירות למגורים), וההבדל בין שיעור אפס לפטור לצורך החזר מע"מ תשומות. היעזרו בקובץ זה בעת טיפול בייצוא או סוגי עסקאות חריגים.
מלכודות נפוצות
- סוכנים לעיתים קרובות משתמשים בשיעור מע"מ ישן של 17%. שיעור המע"מ הנוכחי בישראל הוא 18% (בתוקף מ-1 בינואר 2025, על פי חוק התקציב). הטעות הזו מתגלגלת לכל החישובים. תאמתו את השיעור לפני כל חישוב.
- דוחות מע"מ בישראל מוגשים כל חודשיים, לא כל רבעון כמו במדינות אירופיות רבות. סוכנים עלולים להציע הגשה רבעונית, מה שיגרום לפספוס מועדים וקנסות.
- עסקים בסטטוס עוסק פטור (מחזור שנתי כ-122,833 ש"ח, כפוף לעדכונים שנתיים) לא גובים ולא מדווחים מע"מ. סוכנים עלולים להפיק דוחות מע"מ לעסקים שלא צריכים להגיש אותם.
- מע"מ תשומות על רכישת רכב מוכר רק ב-2/3 בישראל. סוכנים עלולים לתבוע ניכוי מע"מ מלא על הוצאות הקשורות לרכב.
- מ-2026, ניכוי מע"מ תשומות מותנה בקיום מספר הקצאה תקף על חשבוניות מעל הסף (10,000 ש"ח מינואר 2026, 5,000 ש"ח מיוני 2026). סוכנים עלולים להתעלם מדרישה זו, מה שיוביל לדחיית ניכויים.
פתרון בעיות
שגיאה: "Reporting period mismatch"
סיבה: הגשה לתקופה שגויה (למשל, חודש בודד כשרשומים כדו-חודשי) פתרון: תבדקו את רישום העסק. תקופות דו-חודשיות: ינו-פבר, מרץ-אפר, מאי-יוני, יולי-אוג, ספט-אוק, נוב-דצמ.
שגיאה: "Input VAT not deductible"
סיבה: דרישת מע"מ מהוצאות שאינן ניתנות לניכוי (אירוח, לא עסקי) פתרון: עיינו בכללי הניכוי בשלב 3. רק הוצאות עסקיות עם חשבוניות מס תקפות זכאיות.
שגיאה: "Late filing penalty"
סיבה: הגשה אחרי המועד האחרון (15 ידני / 19 מקוון) בחודש העוקב פתרון: הגישו מיד. קנס איחור הוא 239 ש"ח לכל תקופה של שבועיים, בתוספת הפרשי הצמדה וריבית (ריבית בנק ישראל + 4%).
Related skills
FAQ
Is Israeli Vat Reporting safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.