Skip to content

Commit

Permalink
feat: update tva explanations (#1026)
Browse files Browse the repository at this point in the history
* feat: update tva explanations

* test: update e2e

* content: tva definition update

* content: improve terms

* fix: dirigeant date format
  • Loading branch information
XavierJp authored May 14, 2024
1 parent 458e9c5 commit ceca0b2
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
IEtatCivil,
IPersonneMorale,
} from '#models/immatriculation';
import { formatDate, formatDatePartial, formatIntFr } from '#utils/helpers';
import { formatDateLong, formatDatePartial, formatIntFr } from '#utils/helpers';
import { isPersonneMorale } from './is-personne-morale';

export function DirigeantContent({
Expand Down Expand Up @@ -56,7 +56,7 @@ export function DirigeantContent({
{dirigeant.dateNaissance || dirigeant.dateNaissancePartial
? `, né(e) ${
dirigeant.dateNaissance
? 'le ' + formatDate(dirigeant.dateNaissance)
? 'le ' + formatDateLong(dirigeant.dateNaissance)
: 'en ' + formatDatePartial(dirigeant.dateNaissancePartial)
}`
: ''}
Expand Down
12 changes: 10 additions & 2 deletions components-ui/faq-link/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,20 @@ const FAQLink: React.FC<
PropsWithChildren<{ tooltipLabel: string; to?: string }>
> = ({ to, tooltipLabel, children }) => (
<InformationTooltip
label={children}
label={
<>
{children}
{to ? (
<div className="layout-right" style={{ marginTop: '10px' }}>
<a href={to}>→ en savoir plus</a>
</div>
) : null}
</>
}
tabIndex={to ? undefined : 0}
orientation="left"
width={230}
left="0px"
cursor={to ? 'pointer' : 'auto'}
ariaRelation="describedby"
>
<LinkOrSpan to={to} ariaLabel={`En savoir plus sur ${tooltipLabel}`}>
Expand Down
4 changes: 2 additions & 2 deletions components/annonces-section/annonces/bodacc.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ const AnnoncesBodacc: React.FC<{
</Info>
) : (
<p>
Cette structure n’a pas de procédure collective (en cours ou
cloturée).
Cette structure n’a pas fait l’objet d’une procédure collective
(en cours ou clôturée).
</p>
)}
{bodacc.annonces.length === 0 ? (
Expand Down
52 changes: 38 additions & 14 deletions components/tva-cell/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,42 @@ import { ITVAIntracommunautaire } from '#models/tva';
import { Siren, formatIntFr } from '#utils/helpers';
import useFetchTVA from 'hooks/fetch/tva';

const NoTVA = () => <i>Non-assujetti à la TVA</i>;
const NoTVA = () => (
<i>
Pas de{' '}
<FAQLink to="/faq/tva-intracommunautaire" tooltipLabel="n° TVA valide">
Cette structure n’est plus en activité, par conséquent elle ne peut pas
avoir de numéro de TVA valide.
</FAQLink>
</i>
);

const Unknown = () => (
const TVAInvalide = ({
number,
multipleNum,
}: {
number: string;
multipleNum: boolean;
}) => (
<i>
<FAQLink
to="/faq/tva-intracommunautaire"
tooltipLabel="Numéro de TVA inconnu ou structure non-assujettie à la TVA"
>
Le numéro de TVA de cette entreprise est inconnu. Cela peut signifier
qu’elle est non-assujettie à la TVA, ou qu’elle possède un numéro de TVA
valide mais non renseigné dans nos bases.
Pas de{' '}
<FAQLink to="/faq/tva-intracommunautaire" tooltipLabel="n° TVA valide">
Le numéro de TVA {'FR' + formatIntFr(number)} n’est pas validé par
l’administration fiscale.
<br />
Plusieurs explications sont possibles :
<ul>
<li>soit la structure n’est pas assujettie à la TVA</li>
<li>
soit elle est assujettie, mais ce numéro a été invalidé par
l’administration fiscale
</li>
{multipleNum && (
<li>
soit elle est assujettie, mais nous ne connaissons pas son numéro
</li>
)}
</ul>
</FAQLink>
</i>
);
Expand Down Expand Up @@ -121,12 +146,11 @@ const VerifyTVA: React.FC<{
<CopyCell number={tva} />
)}
</>
) : mayHaveMultipleTVANumber.allTime ? (
<>
<Unknown />
</>
) : (
<NoTVA />
<TVAInvalide
number={tvaNumber}
multipleNum={mayHaveMultipleTVANumber.allTime}
/>
)}

{Math.random() < 0.0001 && (
Expand Down
8 changes: 3 additions & 5 deletions cypress/e2e/tva.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@ describe('TVA validation', () => {
});
it('TVA Non-assujettie', () => {
cy.visit(`/entreprise/883010316`).then(() => {
cy.contains('Non-assujetti à la TVA');
cy.contains('TVA valide');
});
cy.visit(`/entreprise/423208180`).then(() => {
cy.contains('Non-assujetti à la TVA');
cy.contains('TVA valide');
});
});
it('TVA link', () => {
cy.visit(`/entreprise/383657467`).then(() => {
cy.contains(
'Numéro de TVA inconnu ou structure non-assujettie à la TVA'
).click();
cy.contains('n° TVA valide').click();
cy.url().should('include', '/definitions/tva-intracommunautaire');
0;
});
Expand Down
37 changes: 23 additions & 14 deletions data/definitions/tva-intracommunautaire.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,48 @@ body: |
## Numéro de TVA intracommunautaire : définition
Le numéro de TVA intracommunautaire est un identifiant unique assigné par l’administration fiscale à toute entreprise assujettie à la TVA (Taxe sur la valeur ajoutée). L'entreprise doit le faire figurer sur l’ensemble de ses documents commerciaux et administratifs.
Le numéro de TVA intracommunautaire est un identifiant unique assigné par l’administration fiscale à toute entreprise assujettie à la TVA (Taxe sur la valeur ajoutée). L'entreprise doit le faire figurer sur l’ensemble de ses documents commerciaux et administratifs.
Le numéro de TVA intracommunautaire est délivré par l’administration fiscale du pays d’immatriculation. En France, cet identifiant se compose du code FR, d'une clé (2 chiffres) et du numéro Siren de l’entreprise (9 chiffres).
Ce numéro est indispensable aux entreprises qui réalisent des opérations d'importation en provenance de pays situés en dehors de l'Union Européenne.
Il est délivré par l’administration fiscale du pays d’immatriculation. En France, cet identifiant se compose du code FR, d'une clé (2 chiffres) et du numéro Siren de l’entreprise (9 chiffres).
Ci-dessous, un exemple pour mieux comprendre la structure de ce numéro :
- Entreprise : ELECTRICITE DE FRANCE (EDF)
- SIREN : 552081317
- Numéro de TVA intracommunautaire : FR 03 552081317
## Une obligation pour les entreprises basée dans l’Union Européenne
## Quelles sont les entreprises disposant d'un numéro de Numéro de TVA intracommunautaire ?
Toute entreprise domiciliée dans l’Union Européenne (UE) et qui est redevable de la TVA doit disposer d’un numéro de TVA intracommunautaire.
Cet identifiant n’est pas nécessaire pour une entreprise si :
Toutefois, cet identifiant n’est pas accessible pour une entreprise si :
- elle n'est pas assujettie à la TVA (du fait de la nature de son activité par exemple).
- elle dépend du régime de la franchise en base sans avoir solliciter le numéro auprès de son SIE de rattachement.(https://entreprendre.service-public.fr/vosdroits/R38712)
- elle a fait l'objet d'une suspension de son numéro par l'administration fiscale.
- elle n'est plus en activité.
Pour en savoir plus consultez la page fiche explicative sur [entreprendre.service-public.fr](https://entreprendre.service-public.fr/vosdroits/F23570)
## Où trouver un numéro de TVA intracommunautaire en ligne ?
Il est possible de consulter le numéro de TVA intracommunautaire d’une entreprise en ligne. En effet, pour toutes les entreprises et associations françaises, l’Annuaire des Entreprises affiche cette information.
- elle n’est pas assujettie à la TVA (exemple : les micro-entrepreneurs)
- si elle ne vend ni n'achète des prestations de services à des entreprises basées dans l'UE
- si elle n’effectue pas des achats supérieurs à 10 000 € sur une année au sein de l’UE
Pour une entreprise établie hors de France, mais dans l’UE, cette vérification s’effectue via le [service européen de validation des numéros de TVA (VIES)](https://ec.europa.eu/taxation_customs/vies/#/vat-validation). Cette précaution est fortement recommandée afin de réduire le risque de fraude ou d’escroquerie.
Le numéro de TVA affiché sur l’Annuaire des Entreprises est validé par l’administration fiscale. Dans les cas ou le numéro n’est pas accesible (voir la liste ci-dessus), il est remplacé par la mention "pas de numéro de TVA valide".
**Attention : de nombreux sites internet affichent un numéro de TVA mais ne prennent pas la peine de vérifier sa validité.**
## À quoi sert le numéro de TVA intracommunautaire
Le numéro de TVA intracommunautaire favorise et sécurise les échanges commerciaux entre les entreprises de l’UE. En effet, il rend possible :
- l’identification des sociétés
- la simplification des formalités douanières
- l’optimisation du suivi et du remboursement de la TVA au titre de la TVA déductible
- la traçabilité des échanges et la garantie d'une concurrence libre et non faussée
Pour ce faire, la société doit obligatoirement faire figurer cet identifiant sur :
Expand All @@ -49,12 +64,6 @@ body: |
***À noter** : une entreprise redevable de la TVA, domiciliée hors de l’UE, est tenue de s’immatriculer en France pour obtenir son numéro d’identification à la TVA.*
## Où trouver un numéro de TVA intracommunautaire ?
Il est possible de consulter le numéro de TVA intracommunautaire d’une entreprise en ligne. Comment faire ? Pour toutes les entreprises et associations françaises, l’Annuaire des Entreprises affiche cette information. Pour une entreprise établie hors de France, mais dans l’UE, cette vérification s’effectue via le [service européen de validation des numéros de TVA (VIES)](https://ec.europa.eu/taxation_customs/vies/#/vat-validation). Cette précaution est fortement recommandée afin de réduire le risque de fraude ou d’escroquerie.
***Attention** : de nombreux sites internet affichent un numéro de TVA mais ne prennent pas la peine de le vérifier.*
## Une entreprise peut-elle avoir plusieurs numéro de TVA intracommunautaire ?
Une entreprise assujettie à la TVA possède un numéro de TVA pour chacun de ses code d’activité (NAF/APE). Dans ce cas, le numéro de TVA affiché sur Annuaire des Entreprises est celui de son premier code d’activité.
Expand Down

0 comments on commit ceca0b2

Please sign in to comment.