askill
bir-tax-filing

bir-tax-filingSafety 90Repository

Guides BIR tax return preparation and filing for Philippine compliance

2 stars
1.2k downloads
Updated 2/8/2026

Package Files

Loading files...
SKILL.md

BIR Tax Filing Skill

Overview

This skill provides comprehensive guidance for Bureau of Internal Revenue (BIR) tax compliance, including preparation, validation, and filing of various tax returns required for Philippine businesses.

Supported Forms

FormNameFrequency
1601-CMonthly Withholding Tax on CompensationMonthly
1601-EMonthly Expanded Withholding TaxMonthly
2550MMonthly VAT DeclarationMonthly
2550QQuarterly VAT ReturnQuarterly
1601-QQuarterly Income TaxQuarterly
1702Annual Income Tax ReturnAnnual
1604-CFAnnual Alphalist (Compensation)Annual
2307Certificate of Creditable Tax WithheldAs needed

Workflow by Form Type

Form 1601-C (Monthly Withholding - Compensation)

Deadline: 10th of following month

Data Sources:

Odoo hr.payslip → Compute withholding tax
Fields: employee_id, date_from, date_to, net_wage, tax_withheld

Preparation Steps:

  1. Export payroll data for the period
  2. Summarize by tax bracket
  3. Reconcile to payroll register
  4. Generate BIR format data
  5. Review and validate

Validation Checks:

validations = [
    ("Total employees matches payroll", lambda x: x.employee_count == payroll.count),
    ("Tax withheld > 0", lambda x: x.total_tax > 0),
    ("Dates within period", lambda x: x.date_range_valid),
    ("TIN format valid", lambda x: re.match(r'\d{3}-\d{3}-\d{3}-\d{3}', x.tin)),
]

Form 1601-E (Monthly Expanded Withholding Tax)

Deadline: 10th of following month

Data Sources:

Odoo account.move → Vendor invoices with EWT
Filter: tax_ids contains EWT tax codes

EWT Rate Reference:

Payment TypeRate
Professional fees (individuals)10%
Professional fees (corporations)15%
Rent5%
Contractors2%

Preparation Steps:

  1. Query vendor invoices with EWT taxes
  2. Group by tax rate / ATC code
  3. Generate payee listing (Alphalist)
  4. Summarize totals
  5. Validate against GL

Form 2550Q (Quarterly VAT Return)

Deadline: 25th of month following quarter end

Data Sources:

Odoo account.move →
  Output VAT: move_type='out_invoice', tax like '%VAT%'
  Input VAT: move_type='in_invoice', tax like '%VAT%'

VAT Computation:

Output VAT = Sum of VAT on sales
Input VAT = Sum of VAT on purchases (claimable)
VAT Payable = Output VAT - Input VAT

Validation:

  • Output VAT ties to sales register
  • Input VAT ties to purchase register
  • VAT creditable percentage applied correctly
  • Zero-rated sales documented

Automation Support

n8n Workflow: BIR Deadline Reminder

The bir_deadline_reminder.json workflow:

  • Runs daily at 8 AM
  • Calculates upcoming deadlines
  • Posts to #bir-alerts channel
  • Tags urgent items (< 3 days)

Data Export Query

-- EWT Summary for 1601-E
SELECT
    p.vat AS payee_tin,
    p.name AS payee_name,
    at.name AS tax_type,
    at.amount AS tax_rate,
    SUM(aml.debit) AS gross_amount,
    SUM(aml.debit * at.amount / 100) AS tax_withheld
FROM account_move_line aml
JOIN account_move am ON aml.move_id = am.id
JOIN res_partner p ON am.partner_id = p.id
JOIN account_tax at ON aml.tax_line_id = at.id
WHERE am.state = 'posted'
  AND am.move_type = 'in_invoice'
  AND at.name LIKE '%EWT%'
  AND am.date BETWEEN '2026-01-01' AND '2026-01-31'
GROUP BY p.vat, p.name, at.name, at.amount;

Filing Process

eFPS Filing

  1. Log in to efps.bir.gov.ph
  2. Select form type
  3. Enter header information (TIN, period)
  4. Upload data file (CSV/XML)
  5. Review summary
  6. Submit and pay
  7. Save confirmation receipt

eBIRForms Filing

  1. Download offline software
  2. Select form
  3. Enter data manually or import
  4. Validate locally
  5. Generate submission file
  6. Upload to BIR portal
  7. Process payment separately

Certificate Generation (Form 2307)

When Required: Within 20 days of withholding

Data Required:

  • Payee TIN
  • Payee name and address
  • Period covered
  • Income paid
  • Tax withheld
  • ATC code

Odoo Integration:

# Generate 2307 from vendor bill
def generate_2307(move_id):
    move = env['account.move'].browse(move_id)
    return {
        'payee_tin': move.partner_id.vat,
        'payee_name': move.partner_id.name,
        'period': move.date.strftime('%m/%Y'),
        'income_payment': move.amount_untaxed,
        'tax_withheld': sum(move.tax_line_ids.mapped('amount')),
    }

Error Handling

ErrorCauseResolution
Invalid TINFormat errorVerify TIN with payee
Duplicate filingAlready submittedCheck eFPS history
Amount mismatchData errorReconcile to source
System timeoutBIR server issueRetry during off-peak

Compliance Calendar

## January 2026
- Jan 10: 1601-C, 1601-E (Dec 2025)
- Jan 20: 2550M (Dec 2025)
- Jan 25: 2550Q (Q4 2025)
- Jan 31: 1604-CF (2025 Annual)

## February 2026
- Feb 10: 1601-C, 1601-E (Jan)
- Feb 20: 2550M (Jan)

## March 2026
- Mar 1: 1604-E (2025 Annual)
- Mar 10: 1601-C, 1601-E (Feb)

Related Skills

References

Changelog

  • v1.0.0 (2026-01-06): Initial release

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/12/2026

An exceptionally well-structured and actionable skill for Philippine tax compliance. It provides specific Odoo data mappings, SQL queries, Python validation logic, and clear step-by-step filing instructions.

90
100
85
95
98

Metadata

Licenseunknown
Version1.0.0
Updated2/8/2026
PublisherInsightpulseai

Tags

databasegithub-actions