Skip to content

VAT Period ​

Introduction ​

VAT periods represent the time intervals for Swiss VAT accounting and reporting. They are automatically generated based on the organization's VAT accounting method and serve as the foundation for VAT calculations, reporting, and compliance with Swiss tax regulations.

VAT Accounting Methods ​

Switzerland supports two primary VAT accounting methods, each with different period structures:

MethodPeriod LengthDescription
EffectiveQuarterlyStandard method with quarterly VAT periods (Q1, Q2, Q3, Q4)
Net Tax RateSemi-annualSimplified method with two periods per year (S1: Jan-Jun, S2: Jul-Dec)

Period Status ​

VAT periods can be in different states:

  • Open: Period is active and transactions can be posted
  • Closed: Period is finalized with saved VAT calculations, no further changes allowed
  • Current: The period that includes today's date

Allowed query parameters ​

VAT periods support no filters, sorts or includes. They are always sorted by start_date, newest first.

Retrieve a VAT period ​

get
/vat_period/{id}

Example response ​

json
// HTTP 200 OK
{
    "id": "v7rnRjBn9o",
    "name": "2024 / 1. Quartal",
    "short_name": "2024-Q1",
    "sequence_number": 1,
    "year": 2024,
    "start_date": "2024-01-01",
    "end_date": "2024-03-31",
    "closed_at": "2024-04-15T10:30:00.000000Z",
    "is_closed": true,
    "accounting_type": {
        "name": "Agreed",
        "value": "agreed",
        "label": "Nach vereinbartem Entgelt"
    },
    "accounting_method": {
        "name": "Effective",
        "value": "effective",
        "label": "Effektive Abrechnungsmethode"
    },
    "booking_method": {
        "name": "Net",
        "value": "net",
        "label": "Nettomethode"
    }
}

List VAT periods ​

get
/vat_period

The list endpoint accepts the same parameters as in Retrieve a VAT period and returns a paginated array of the same VAT period object in the data property.

Read more about Pagination, Filtering, Sorting and Includes on the Introduction page.

Example response ​

json
// HTTP 200 OK
{
    "data": [
        {
            "id": "current_q4",
            "name": "2024 / 4. Quartal",
            "short_name": "2024-Q4",
            "sequence_number": 4,
            "year": 2024,
            "start_date": "2024-10-01",
            "end_date": "2024-12-31",
            "closed_at": null,
            "is_closed": false,
            "accounting_type": {
                "name": "Agreed",
                "value": "agreed",
                "label": "Nach vereinbartem Entgelt"
            },
            "accounting_method": {
                "name": "Effective",
                "value": "effective",
                "label": "Effektive Abrechnungsmethode"
            },
            "booking_method": {
                "name": "Net",
                "value": "net",
                "label": "Nettomethode"
            }
        },
        {
            "id": "closed_q3",
            "name": "2024 / 3. Quartal",
            "short_name": "2024-Q3",
            "sequence_number": 3,
            "year": 2024,
            "start_date": "2024-07-01",
            "end_date": "2024-09-30",
            "closed_at": "2024-10-10T14:22:15.000000Z",
            "is_closed": true,
            "accounting_type": {
                "name": "Agreed",
                "value": "agreed",
                "label": "Nach vereinbartem Entgelt"
            },
            "accounting_method": {
                "name": "Effective",
                "value": "effective",
                "label": "Effektive Abrechnungsmethode"
            },
            "booking_method": {
                "name": "Net",
                "value": "net",
                "label": "Nettomethode"
            }
        }
    ],
    "links": {
        "first": "https://api.example.com/vat_period?page=1",
        "last": "https://api.example.com/vat_period?page=3",
        "prev": null,
        "next": "https://api.example.com/vat_period?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 3,
        "per_page": 25,
        "to": 25,
        "total": 68
    }
}