API reference / Quittio \ Country \ FR
CountryFR
class in quittio/country-fr · extends AbstractCountryPack · implements CompletesInvoices, ProvidesReferenceRates
Quittio\Country\FR\CountryFR · Source
Country pack for France (metropolitan France and Monaco).
Not reviewed by a tax adviser yet (see the README of the pack).
Constants#
| Constant | Value | Description |
|---|---|---|
CODE | 'FR' | |
FLAG_VAT_ON_DEBITS | 'fr.vat_on_debits' | Meta flag: the seller opted to pay VAT on debits; the invoice states it (from 1 September 2026). |
TRANSLATION_NAMESPACE | 'quittio-fr' |
Methods#
| Method | Description |
|---|---|
->addressFormatter() | Default: international address format. |
->buyerCountryRules() | Default: no rules. |
->code() | |
->complete() | Adds to invoices between businesses the mention of late payment penalties, the fixed indemnity of 40 EUR and the discount (art. L441-9 Code de commerce), unless the invoice mentions penalties already or the setting payment_mentions is false (quittio.countries.fr); with the flag FLAG_VAT_ON_DEBITS the option to pay VAT on debits. An invoice issued from 1 January 2027 cites the CIBS instead of the CGI in the texts of the presets (VatPreset::exemptionReasonOn()). |
->correctionPolicy() | Cancellation by credit note (avoir), correction by cancel and reissue. |
->defaults() | |
->dunningLaw() | Art. L441-10 Code de commerce: the ECB rate plus 10 points between businesses and a fixed indemnity of 40 EUR; consumers owe the legal interest rate (art. 1231-6 Code civil). The rate depends on the creditor (art. L313-2 Code monétaire et financier): a business claims the rate "for all other cases", 2.75 % in the second half of 2026 (arrêté of 26 June 2026), not the higher rate for creditors who are individuals. |
->exporters() | Default: no exporters. |
->formatAliases() | Default: no aliases. |
->formatRules() | |
->formats() | Default: no own formats. |
::frenchDunningLaw() | |
->legalTexts() | Default: an empty catalog. |
->letterLayouts() | Default: the free layout only. |
::locales() | Locales the pack ships translations for, e.g. ["en", "fr"]. |
->mandatoryOutput() | |
->numberingRules() | A unique number of a continuous chronological series (art. 242 nonies A annex II CGI). |
->paymentQr() | Default: none; the EPC GiroCode is used for the type "girocode". |
->profiles() | Default: no profiles. |
->readers() | Default: no readers. |
->referenceRates() | |
::registerTranslations() | Makes the pack's translations available to the active translator. |
->retention() | Ten years from the end of the financial year (art. L123-22 Code de commerce); the tax administration may check six years. |
->rules() | |
->serializers() | Default: no serializers; CII and UBL are built in. |
->taxPresets() | |
->translationPath() |
addressFormatter()#
public function addressFormatter(): AddressFormatterDefault: international address format.
- Returns
AddressFormatter
buyerCountryRules()#
public function buyerCountryRules(): arrayDefault: no rules.
- Returns
array
code()#
public function code(): string- Returns
string
complete()#
public function complete(InvoiceData $invoice, array $settings): InvoiceDataAdds to invoices between businesses the mention of late payment penalties, the fixed indemnity of 40 EUR and the discount (art. L441-9 Code de commerce), unless the invoice mentions penalties already or the setting payment_mentions is false (quittio.countries.fr); with the flag FLAG_VAT_ON_DEBITS the option to pay VAT on debits. An invoice issued from 1 January 2027 cites the CIBS instead of the CGI in the texts of the presets (VatPreset::exemptionReasonOn()).
| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData | |
$settings | array |
- Returns
InvoiceData
correctionPolicy()#
public function correctionPolicy(): CorrectionPolicyCancellation by credit note (avoir), correction by cancel and reissue.
- Returns
CorrectionPolicy
defaults()#
public function defaults(): CountryDefaults- Returns
CountryDefaults
dunningLaw()#
public function dunningLaw(): DunningLawArt. L441-10 Code de commerce: the ECB rate plus 10 points between businesses and a fixed indemnity of 40 EUR; consumers owe the legal interest rate (art. 1231-6 Code civil). The rate depends on the creditor (art. L313-2 Code monétaire et financier): a business claims the rate "for all other cases", 2.75 % in the second half of 2026 (arrêté of 26 June 2026), not the higher rate for creditors who are individuals.
- Returns
DunningLaw
exporters()#
public function exporters(): arrayDefault: no exporters.
- Returns
array
formatAliases()#
public function formatAliases(): arrayDefault: no aliases.
- Returns
array
formatRules()#
public function formatRules(): array- Returns
array
formats()#
public function formats(): arrayDefault: no own formats.
- Returns
array
frenchDunningLaw()#
public static function frenchDunningLaw(): DunningLaw- Returns
DunningLaw
legalTexts()#
public function legalTexts(): LegalTextCatalogDefault: an empty catalog.
- Returns
LegalTextCatalog
letterLayouts()#
public function letterLayouts(): arrayDefault: the free layout only.
- Returns
array
locales()#
public static function locales(): list<string>Locales the pack ships translations for, e.g. ["en", "fr"].
- Returns
list<string>
mandatoryOutput()#
public function mandatoryOutput(InvoiceData $invoice): MandatoryFieldList| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData |
- Returns
MandatoryFieldList
numberingRules()#
public function numberingRules(): NumberingRulesA unique number of a continuous chronological series (art. 242 nonies A annex II CGI).
- Returns
NumberingRules
paymentQr()#
public function paymentQr(): ?PaymentQrGeneratorDefault: none; the EPC GiroCode is used for the type "girocode".
- Returns
?PaymentQrGenerator
profiles()#
public function profiles(): arrayDefault: no profiles.
- Returns
array
readers()#
public function readers(): arrayDefault: no readers.
- Returns
array
referenceRates()#
public function referenceRates(): ReferenceRates- Returns
ReferenceRates
registerTranslations()#
public static function registerTranslations(): voidMakes the pack's translations available to the active translator.
retention()#
public function retention(): RetentionRuleTen years from the end of the financial year (art. L123-22 Code de commerce); the tax administration may check six years.
- Returns
RetentionRule
rules()#
public function rules(): array- Returns
array
serializers()#
public function serializers(): arrayDefault: no serializers; CII and UBL are built in.
- Returns
array
taxPresets()#
public function taxPresets(): TaxPresetCollection- Returns
TaxPresetCollection
translationPath()#
public function translationPath(): string- Returns
string