Journal Coin2086, un module Python pour faciliter vos déclarations fiscales de ventes de crypto-monnaies

Posté par  . Licence CC By‑SA.
19
13
mai
2021

L'heure de remplir sa déclaration d'impôts est venue (oh ! oui !), et si vous avez réalisé des plus-values en vendant des crypto-monnaies en 2020, vous allez devoir un formulaire n°2086 (chanceux que vous êtes).

En effet, selon le code des impôts (CGI art. 150 VH bis bis pour les masW curieux), les plus values réalisées à l'occasion de la revente de crypto-monnaies sont imposables. La notice du formulaire n°2086 (dernière page du PDF), précise la formule de calcul:

formule calcul

Concrètement, si vous achetez un Bitcoin pour 1000€, et un Ethereum pour 100€ en janvier 2020, puis qu'en mars le Bitcoin monte à 1300€ et l'Ethereum à 150€, et que vous décidez alors de vendre 0.25 Bitcoin, le profit associé à cette vente est :

# 1 Bitcoin à 1300 euro, 1 Ethereum à 150 euro
valeur_portefeuille = (1 * 1300 + 1 * 150)
# Vente de 0.25 Bitcoin à 1300 euro l'unité
valeur_vente = (0.25 * 1300)
# 1 Bitcoin à 1000 euro, 1 Ethereum à 100 euro
prix_achat_portefeuille = 1100

profit = valeur_vente - (valeur_vente/valeur_portefeuille) * prix_achat_portefeuille = 78.44 euros

La valeur (valeur_vente/valeur_portefeuille) * prix_achat_portefeuille (246€) devient votre "fraction de capital initial" qui pourra être déduite du prix d'achat de votre portefeuille à la deuxième vente.

Toute cette comptabilité est assez ennuyeuse à faire à la main ou même avec un tableur, parce qu'il faut valoriser toutes vos crypto-monnaies à chaque vente, pas seulement la crypto-monnaie vendue.

Quand vous vendez du Bitcoin la transaction enregistrée par l'exchange sur votre profil retient le prix de vente du Bitcoin mais pas les prix de vos autres crypto-monnaies. Il vous faudra donc manuellement aller chercher les prix des autres crypto-monnaies sur les exchanges ou des sites qui gardent les historiques de prix.

C'est là que coin2086 entre en jeu. Globalement, il s'occupe de tout pour vous, il valorise votre portefeuille à chaque vente, et s'occupe des calculs de "fractions de capital initial". Pour l'utiliser, il faut simplement lui fournir un DataFrame pandas contenant un historique de toutes vos transactions en entrée. Vous pourrez télécharger cet historique de depuis votre exchange dans votre profil, vous n'aurez ensuite qu'à retravailler le nom des colonnes pour qu'elles correspondent au format attendu par coin2086. En sortie, vous obtenez un DataFrame qui contient exactement les informations à copier sur le formulaire n°2086 pour chaque vente.

>>> import pandas as pd
>>> import coin2086
>>> trades = pd.read_csv('trades.csv')
>>> trades
             datetime trade_side cryptocurrency  quantity     price base_currency      amount        fee
0 2019-10-19 11:10:00        BUY            BTC      1.00   7149.38           EUR   7149.3800  35.746900
1 2019-11-14 19:50:00       SELL            BTC      0.50   7844.88           EUR   3922.4400  19.612200
2 2020-07-28 10:20:00        BUY            BTC      2.00   9262.42           EUR  18524.8400  92.624200
3 2020-09-01 12:20:00        BUY            ETH      5.00    393.58           EUR   1967.9000   9.839500
4 2020-09-05 16:50:00       SELL            BTC      1.00   8722.70           EUR   8722.7000  43.613500
5 2020-09-08 12:40:00       SELL            ETH      5.00    285.07           EUR   1425.3500   7.126750
6 2020-12-20 09:10:00       SELL            BTC      0.25  19223.90           EUR   4805.9750  24.029875
7 2021-03-13 23:40:00       SELL            BTC      0.25  50025.17           EUR  12506.2925  62.531463

>>> year = 2020
>>> form2086, taxable_profit = coin2086.compute_taxable_pnls(trades, year=year)
>>> print(f"Total taxable profit for year {year}: {taxable_profit:.2f} euros")
Total taxable profit for year 2020: 2038.50 euros
>>> form2086
     Description  ... Plus-values et moins-values [pnl]
4  SELL 1.00 BTC  ...                       -371.708792
5  SELL 5.00 ETH  ...                       -102.332358
6  SELL 0.25 BTC  ...                       2512.542417

[3 rows x 10 columns]

Voila, ce journal est déjà beaucoup trop long, vous trouverez ci-dessous tous les liens utiles.

📖 Documentation: https://coin2086.readthedocs.io/
📦 Paquet PyPI: https://pypi.org/project/coin2086/
📝 Notebook Jupyter d'exemple: Lancer sur Binder
💻 Projet GitHub: https://github.com/fandre90/coin2086

Coin2086 est distribué sous licence MIT et tout type de contribution (remarques, commentaires, pull requests etc.) est absolument bienvenu.

  • # Franchement

    Posté par  (site web personnel) . Évalué à 4.

    Sachant que le gouvernement ne peut pas savoir si vous détenez, achetez ou vendez de la crypto-monnaie (vu que c'est quand même un des buts), y-a-t-il vraiment des personnes qui vont déclarer leur gains ?

    • [^] # Re: Franchement

      Posté par  . Évalué à 10.

      Je laisse le choix à chacun de décider ce qu'il souhaite faire évidemment.

      Par contre, un point important, c'est de rappeler que les transactions, toutes les transactions, sont publiques (sur la plupart des grosses crypto-monnaies; il existe des crypto-monnaies anonymes mais ça n'est pas le cas de Ethereum ou Bitcoin). D'ailleurs la blockchain ce n'est que ça: le livre de comptes qui répertorie toutes les transactions.

      Alors oui effectivement le gouvernement ne peut pas savoir quelles adresses bitcoin vous utilisez, mais reste que si un jour il finit par le savoir, il pourra alors très facilement reconstituer l’historique d'absolument toutes vos transactions, puisqu'elles sont stockées dans la blockchain "pour l'éternité".

      Aussi si vous achetez et revendez vos crypto-monnaies sur un exchange connu (comme Coinbaise, Binance, Bitstamp ou Kraken), vous avez fourni une pièce d'identité, bref vous êtes identifiables. Il n'est pas exclu qu'un jour le gouvernement aille frapper à la porte des exchanges pour leur demander de leur fournir la liste des contribuables français qu'ils ont en base.

      Si vous déclarez mal vos impôts (par exemple si vous faites des erreurs de comptabilité, ou déclarez dans la mauvaise catégorie de revenus), l'administration fiscale n'a que 4 ans pour vous redresser, et les peines sont limitées (je crois que c'est une majoration de 40% de l'impôt du). Par contre, si vous ne déclarez pas du tout, ça peut être considéré comme une activité occulte, là la majoration est de 80%, et il peut y avoir des poursuites pénales. Évidemment si c'est pour 1500 euros de gain, on va surement pas vous mettre en prison pour ça.

      Bref, mon avis personnel est que le jeu n'en vaut pas la chandelle (mais chacun pourra avoir un avis différent). Aussi, encore un avis personnel, je n'enfreins pas la loi, si je ne suis pas content d'une loi, je la critique ou j'essaye de la changer. Après chacun voit midi à sa porte.

      Je profite de ce commentaire déjà trop long pour dire que si on veut être en pleine conformité avec la loi, il faut déclarer ses comptes sur les plateformes d'échange (Formulaire n°3916 bis, à joindre avec la déclaration d'impôt), sous peine d'une amende de 750€ par compte. Aussi il y a un abattement de 305€ cette année sur les gains (me demandez pas pourquoi), je ne sais pas si on est tenu de déclarer quand on fait moins de 305€ de gains.

      • [^] # Re: Franchement

        Posté par  (site web personnel) . Évalué à 5.

        Il n'est pas exclu non plus que l'IRS (le fisc américain) commence à dire "la plus value a été fait aux USA, donc vous nous devez de l'argent". J'ai du déclarer au fisc francais et à l'IRS mes comptes pour éviter d'être taxé 2 fois.

        Bitstamp est basé au Luxembourg, Binance à Hong Kong, mais Kraken et Coinbase sont aux états unis.

        Et je pense que dans le cadre des lois anti corruptions (FCPA, etc), les USAs ont les moyens de contraindre les plateformes étrangères à collaborer vu qu'elles opèrent aussi aux USA.

        • [^] # Re: Franchement

          Posté par  . Évalué à 1.

          Mmmh je pense que c'est assez peu probable que l'IRS aille réclamer quoi que ça soit pour un résident fiscal français. En général ce type de sujet (où sont taxés les revenus financiers) est réglé par les conventions fiscales. Beaucoup de conventions fiscales entre la France et d'autres pays suivent les "bon pratiques fiscales de l'OCDE" et ces bonnes pratiques précisent notamment que les revenus financiers (revente d'actions, investissements dans les obligations etc.) sont taxables dans le pays de résidence du contribuable, quelle que soit la localisation de l'entreprise ou des intermédiaires ou des établissements financiers. Sinon, ça serait un peu trop facile, il y aurait plein de brokers à Malte ou aux Seychelles (ou le taux d'imposition est très faible), et tout le monde ferait ses opérations financières via internet dans un pays sans impôts.

          Pour ce qui est des lois anti-corruption et anti-évasion fiscale, tu as totalement raison par contre, il y a de plus en plus d'accords de partage d'information etc., donc je ne me sentirais pas "en sécurité" parce que mon exchange ou mon broker est à l'étranger.

          • [^] # Re: Franchement

            Posté par  (site web personnel) . Évalué à 4.

            Mmmh je pense que c'est assez peu probable que l'IRS aille
            réclamer quoi que ça soit pour un résident fiscal français

            Alors je suis d'accord, mais ça implique que l'IRS le sache (à savoir que tu es résident fiscale français), ce qui implique sans doute de le déclarer à l'exchange a un moment ou à un autre.

            Beaucoup de conventions fiscales entre la France et d'autres
            pays suivent les "bon pratiques fiscales de l'OCDE" et ces
            bonnes pratiques précisent notamment que les revenus financiers
            (revente d'actions, investissements dans les obligations etc.)
            sont taxables dans le pays de résidence du contribuable, quelle
            que soit la localisation de l'entreprise ou des intermédiaires
            ou des établissements financiers

            Bien sur, mais l'IRS a aussi des règles parfois différentes.

            Par exemple, l'IRS considère que c'est la citoyenneté qui compte plus que la résidence fiscale:
            https://1040abroad.com/faq/who-is-a-us-person-for-tax-purposes/

            Dans le cas en cours, on parle de personnes qui payent les impots en france, donc c'est pas applicable (et c'est pas le point que je veux faire).

            Mon point est que l'IRS a déjà une vision différente de celle qu'on a vis à vis de la résidence fiscale, et donc, sur la base de ce précédent, je ne serais pas surpris qu'à un moment, l'IRS soit capable de sortir de son chapeau des règles comme "il y a des gens qui n'ont pas dit ou ils sont résidents sur Xcoinexchange, donc on suppose que c'est les US".

            Pour le moment, c'est pas le cas et ça le sera peut être jamais. Et je suis sans doute alarmiste pour rien.

            Encore une fois, mes banques US (Morgan Stanley, Fidelity) m'ont déclaré à l'IRS et j'ai du remplir un formulaire W-8BEN.

            Je bosse en France, je vis en France, j'ai un contrat de droit français, la nationalité française, la résidence fiscale française mais mon employeur utilise une banque aux USA pour une partie de ma rémuneration, donc j'ai un compte la bas, et je doit dire à l'IRS "non non, je suis francais".

            C'est bien parce que l'IRS présuppose que si ça se passe aux USA, ça les regarde.

            • [^] # Re: Franchement

              Posté par  . Évalué à 2.

              Tu as raison de mentionner que les États-Unis imposent leurs citoyens sur leur revenus, même s'ils ne sont pas résidents fiscaux.

              Mais ce qui est important ici, c'est la citoyenneté ou la résidence fiscale du contribuable, pas la localisation de la banque ou de l'intermédiaire financier.

              Pour information, toutes les banques dans le monde, pas seulement les banques US (et a fortiori tous les intermédiaires financiers), sont tenues de fournir à l'IRS la liste des « US Persons » (en se fondant sur ce qu'ils appellent des indices d'américanité) qui ont un compte chez eux, sous peine d'avoir des sanctions financières très lourdes aux États-Unis. Ces dispositions proviennent de la loi FACTA.

              D'ailleurs lorsqu'un citoyen français ouvre un assurance-vie auprès d'un assureur français, ou un compte titre auprès d'un broker français (ou n'importe quoi d'autre comme un PEE ou un plan épargne retraite), il doit très souvent cocher une case certifiant qu'il n'est pas une « US Person ». Les banques et intermédiaires financiers demandent justement ça pour se protéger vis à vis des dispositions FACTA. Si vous mentez sur cette déclaration, ce n'est plus eux qui sont responsables vis à vis de l'IRS, c'est vous. S'ils ne vous font pas cocher cette case, c'est eux qui seraient responsables si vous étiez une « US Person » et qu'ils avaient oublié de vous déclarer à l'IRS. J'ai toujours du cocher cette case en ouvrant des compte-titres, et j'ai même rempli un formulaire W-8BEN auprès d'un broker aux Pays-bas (donc ça n'est pas du tout spécifique aux banques américaines).

              Je ne me souviens plus, mais je suis quasiment sur que Kraken ou Coinbase demandent de cocher cette case quand on s'inscrit dessus.

              Donc vraiment pour un citoyen français, résident fiscal français, il y a vraiment aucun risque que l'IRS juge qu'il lui doive des impôts, même si l'exchange utilisé est une société américaine. Et de toutes façons l'IRS n'aurait absolument aucune base légale pour vous imposer.

              En revanche, un citoyen américain, résident fiscal français, et utilisant un exchange luxembourgeois (Bitstamp par exemple) serait susceptible de devoir des impôts à l'IRS, tu as raison.

            • [^] # Re: Franchement

              Posté par  . Évalué à 4.

              Encore une fois, mes banques US (Morgan Stanley, Fidelity) m'ont déclaré à l'IRS et j'ai du remplir un formulaire W-8BEN.

              Le W-8BEN c'est pour éviter la retenue à la source de 30% (et beneficier du DTA France/USA avec retenue à 15%).

              C'est pas une déclaration à l'IRS (c'est juste pour le broker).

        • [^] # Re: Franchement

          Posté par  . Évalué à 2.

          Je m'y suis mis récemment, à la fin 2020, et Coinbase possède une filiale européenne basée en Irlande. La plateforme doit la proposer par défaut.

          Par contre, j'ai un portefeuille en ALGORAND et je me demande ce qu'il en sera. Après, on doit sans doute pouvoir leur fournir une capture d'écran accolée à l'adresse du compte.

          Au passage, j'avais contacté le service local des impôts, un conseiller m'a appelé, mais ne m'a pas détaillé grand-chose, donc merci pour ton travail ainsi que toutes les remarques constructives.

          • [^] # Re: Franchement

            Posté par  . Évalué à 2.

            Pour te répondre, à moins que tu sois citoyen américain, ou que ait travaillé aux États-Unis, il n'y aucun risque vis à vis de l'IRS américain.

            Tout ce que tu as à faire c'est remplir le formulaire 2086 (seulement en cas de vente) et une déclaration de compte à l'étranger 3916 tous les ans, pour chaque compte.

    • [^] # Re: Franchement

      Posté par  . Évalué à 7.

      C'est sympa ton avis sur la solidarité de tes concitoyens qui gagnent de l'argent avec les crypto. Bien sûr que les gens vont déclarer. Tu crois que tous les gens qui ont des cryptomonnaies sont malhonnête ? Tu crois que les gens n'ont pas conscience que c'est de l'argent facile et que la taxation est légitime ? Aussi quand tu vires à ton nom 5000€ de ta banque vers une banque maltaise qui s'appelle Coinbase, il n'y a rien de moins caché et «suspect».

      • [^] # Re: Franchement

        Posté par  . Évalué à 10. Dernière modification le 14 mai 2021 à 09:14.

        Très franchement la notion de conscience pour les utilisateurs de cryptomonaie, oui elle est clairement limité (comme tout autre spéculateur ou possesseur de SUV). Payer des impôts dessus n'est qu'un moindre mal.

        https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

      • [^] # Re: Franchement

        Posté par  (site web personnel) . Évalué à 8.

        Tu crois que tous les gens qui ont des cryptomonnaies sont malhonnête ?

        Sachant que le minage des cryptomonnaies détruit la planète, ruine des individus, et génère plus de mal que de bien, je considère les gens qui ont des cryptomonnaies comme des fumiers égoïstes.
        Mais je n'ai jamais dit que tous les gens de droite sont malhonnêtes. Ils y en a qui sont juste cons.

  • # Top merci

    Posté par  . Évalué à 1. Dernière modification le 13 mai 2021 à 23:22.

    Je bookmark et vais voir. Pour le moment je fais des captures d écran et sauvegardes des logs de tout et ca me prend un temps de malade (1 grosse journée). Et il faut faire cela a chaque fois que l'on sort en euro pour prouver la valeur de son portefeuille.

    En plus pour répondre au commentaire plus haut les blockains sont publiques si tu ne fais pas attention te tracer est "facile" si on a ton numéro de portefeuille (la clé publique).

    Et si 30% de la plus value c est beaucoup c est aussi exactement le meme pourcentage que les placement actions et atres … pas de différence et c'est très bien. Je veux payer le juste montant d impot!

    Reste un dernier problème : Je ne pense pas qu'une personne investie dans les crypto actifs ait 1 seul exchange. Et les portefeuilles, les pools , la defi , le stacking ?

    en tout cas merci

    • [^] # Re: Top merci

      Posté par  . Évalué à 3.

      C'est effectivement une bonne solution (garder des logs et screenshots), personnellement je n'avais pas pensé à le faire, c'est pour ça que j'ai développé ce module Python.

      Le fait d'avoir plusieurs exchanges ne pose pas de problème avec coin2086, il faudrait simplement rassembler toutes les transactions de tous les exchanges, et trier la DataFrame par datetime croissant. Ensuite coin2086 devrait pouvoir traiter ça.

      Effectivement après pour ce qui est du stalking ou des prêts en crypto-monnaies, coin2086 ne gère pas ce type de revenus.

  • # formulaire 2088 et 3916

    Posté par  . Évalué à 4.

    C'est moi ou l'interface des impôts est catastrophique.

    Comment on remplis des comptes crypto-actif dans le formulaire 3916 alors que la case "n° de compte" n'accepte que des alpha-numérique (il n'y a pas de numéro de compte pour binance, je peux même pas rentrer l'identifiant car c'est un email (donc pas alpha-numérique).

    Sur le formulaire 2088 je n'ai pas compris comment on rentre toutes ses cessions d'actif si on en à plus que 20 (c'est limité à 20) ? Impossible de faire une annexe libre ou de joindre un fichier.

    • [^] # Re: formulaire 2088 et 3916

      Posté par  . Évalué à 3.

      Pareil. J'ai fait au mieux.

    • [^] # Re: formulaire 2088 et 3916

      Posté par  . Évalué à 2.

      Au sujet des transactions, effectivement, on ne peut pas en rentrer plus de 20 sur la version web du formulaire 2086. J'en avais parlé avec plusieurs personnes l'année dernière qui avaient fait plus de 20 transactions, ce qu'ils ont fait c'est un fichier tableur (csv/ods) avec les plus-values liées à leurs transactions qu'ils ont envoyé via la messagerie sécurisée du site des impôts. Je pense que faire ça te couvre pas mal.

      Pour les 3916, il ne faut pas s'embêter, s'il n'y a pas de numéro de compte, il n'y a pas de numéro de compte. De toutes façons si tu donnes nom prénom date de naissance, l'exchange peut très facilement retrouver ton compte, donc il serait difficile pour le fisc de défendre le fait que tu n'as pas déclaré tes comptes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.