---
title: "Save the fiscal profile"
method: PUT
path: "/v1/reports/fiscal/profile"
tags: ["Reports"]
---

# Save the fiscal profile

`PUT /v1/reports/fiscal/profile`

## Request

- Base URL: `https://api.officina.it`
- URL: `https://api.officina.it/v1/reports/fiscal/profile`
- Auth: HTTP bearer

Saves the profile with the web form's rules and answers like
`GET /v1/reports/fiscal`. An incomplete profile is not saved: missing
`fiscal_regime`, or `vat_settlement_period` for a regime other than
forfettario → `422 parameter_missing`. Unknown values are dropped. An
e-invoice company keeps the regime of its e-invoice settings whatever
is sent. Needs `settings_company.read` too.

## Request body

- ReportFiscalProfileInput
  - `fiscal_regime` 'RF01' | 'RF19'
  - `vat_settlement_period` 'monthly' | 'quarterly'
  - `vat_advance_method` 'storico' | 'previsionale'

## Response `200`

Saved; the profile and its periods.

- ReportFiscal
  - `object` 'report_fiscal', required
  - `profile` ReportFiscalProfile, required
    - `state` 'profile' | 'forfettario' | 'full'
    - `fiscal_regime` string: RF01, RF19, … or empty.
    - `vat_settlement_period` 'monthly' | 'quarterly' | ''
    - `vat_advance_method` 'storico' | 'previsionale' | ''
    - `regime_locked` boolean: The regime belongs to the e-invoice settings.
    - `can_edit` boolean: settings_company.read.
  - `periods` ReportVATPeriod[], required
    - `key` string
    - `label` string
    - `from` string, date
    - `to` string, date
    - `current` boolean: Still running today.
    - `due_date` string, date: F24 deadline.
    - `due_code` string: Codice tributo.
  - `default_period` string

## Other responses

- `400`: Request body is unparseable or X-API-Version is missing.
- `401`: Missing, malformed, expired, or wrong-audience bearer token.
- `402`: The company has no active subscription, or its plan does not include API access. API access is included in the Business and Illimitato plans.
- `403`: The authenticated user lacks the required permission.
- `422`: A request field is missing or invalid (fast-fail).
- `500`: Unhandled server error. Detail is logged, not exposed.

---

[API](https://skmtc.dev/officina/apis/officina-it-api.md) · [All operations](https://skmtc.dev/officina/apis/officina-it-api/llms.txt) · [OpenAPI document](https://skmtc.dev/officina/apis/officina-it-api/revisions/7da3fccfe551?raw)
