Skip to content

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#

ConstantValueDescription
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#

MethodDescription
->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(): AddressFormatter

inherited from AbstractCountryPack

Default: international address format.

Returns
AddressFormatter

buyerCountryRules()#

public function buyerCountryRules(): array

inherited from AbstractCountryPack

Default: no rules.

Returns
array

code()#

public function code(): string
Returns
string

complete()#

public function complete(InvoiceData $invoice, array $settings): InvoiceData

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()).

ParameterTypeDescription
$invoiceInvoiceData
$settingsarray
Returns
InvoiceData

correctionPolicy()#

public function correctionPolicy(): CorrectionPolicy

Cancellation by credit note (avoir), correction by cancel and reissue.

Returns
CorrectionPolicy

defaults()#

public function defaults(): CountryDefaults
Returns
CountryDefaults

dunningLaw()#

public function dunningLaw(): 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.

Returns
DunningLaw

exporters()#

public function exporters(): array

inherited from AbstractCountryPack

Default: no exporters.

Returns
array

formatAliases()#

public function formatAliases(): array

inherited from AbstractCountryPack

Default: no aliases.

Returns
array

formatRules()#

public function formatRules(): array
Returns
array

formats()#

public function formats(): array

inherited from AbstractCountryPack

Default: no own formats.

Returns
array

frenchDunningLaw()#

public static function frenchDunningLaw(): DunningLaw

static

Returns
DunningLaw

legalTexts()#

public function legalTexts(): LegalTextCatalog

inherited from AbstractCountryPack

Default: an empty catalog.

Returns
LegalTextCatalog

letterLayouts()#

public function letterLayouts(): array

inherited from AbstractCountryPack

Default: the free layout only.

Returns
array

locales()#

public static function locales(): list<string>

static

Locales the pack ships translations for, e.g. ["en", "fr"].

Returns
list<string>

mandatoryOutput()#

public function mandatoryOutput(InvoiceData $invoice): MandatoryFieldList
ParameterTypeDescription
$invoiceInvoiceData
Returns
MandatoryFieldList

numberingRules()#

public function numberingRules(): NumberingRules

A unique number of a continuous chronological series (art. 242 nonies A annex II CGI).

Returns
NumberingRules

paymentQr()#

public function paymentQr(): ?PaymentQrGenerator

inherited from AbstractCountryPack

Default: none; the EPC GiroCode is used for the type "girocode".

Returns
?PaymentQrGenerator

profiles()#

public function profiles(): array

inherited from AbstractCountryPack

Default: no profiles.

Returns
array

readers()#

public function readers(): array

inherited from AbstractCountryPack

Default: no readers.

Returns
array

referenceRates()#

public function referenceRates(): ReferenceRates
Returns
ReferenceRates

registerTranslations()#

public static function registerTranslations(): void

static

Makes the pack's translations available to the active translator.

retention()#

public function retention(): RetentionRule

Ten 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(): array

inherited from AbstractCountryPack

Default: no serializers; CII and UBL are built in.

Returns
array

taxPresets()#

public function taxPresets(): TaxPresetCollection
Returns
TaxPresetCollection

translationPath()#

public function translationPath(): string
Returns
string

The open core packages are MIT licensed. The legal wording of the country packs must be confirmed by a tax adviser.