Valider et/ou créer vos factures électroniques au format Factur-X facilement avec Windev

Nous travaillons depuis quelques mois sur une API simplifiée pour les développeurs Windev, voir http://devverspa.fr et notre article du 4 février 2026.

L'API est toujours en cours de développement pour être opérationnelle pour le mois de septembre 2026. Sa simplicité vous permettra d'intégrer facilement l'envoi et la réception, respectivement, de vos factures de vente et d'achat. 

Avant cela, nous vous proposons une API pour valider vos factures, et aussi pour générer facilement vos factures au format Factur-X à partir d'un JSON. Un JSON est plus simple à créer et à remplir à partir de vos factures et de vos données qu'un fichier XML, celui du format Factur-X. Vous n'aurez pas besoin de suivre les évolutions du format Factur-X, ou tout au moins ce sera plus facile de s'adapter.

Si vous générez déjà vos factures au format Factu-X, l'API de validation vous sera aussi d'une grande utilité.

Pour accéder à l'API, envoyez-nous une demande d'inscription par mail avec vos coordonnées. l'API est disponible ici : 

https://devverspa.fr/DEVVERSPA_WEB/awws/index.htm

L'intégration dans Windev se fait simplement par importation du Webservice dans votre projet Windev :


Il faudra renseigner l'adresse suivante :

https://devverspa.fr/DEVVERSPA_WEB/awws/DevVersPA.awws?wsdl

Ensuite, pour valider une facture que vous avez générée au format Factur-X, voici les quelques lignes de codes : 

BufFichier est un Buffer
BufFichier=fChargeBuffer(sCheminFichier)
sTokenConnexion est une chaîne
sTokenConnexion=WS_1_ConnexionDevVersPA("votelogin","votremotdepasse")
vResultatValidation=JSONVersVariant(WS_2_ValidationFacturX(sTokenConnexion,"PDF",Encode(BufFichier,encodeBASE64URL),"JSON"))
SI vResultatValidation.ValidationFacture=Faux ALORS
    info(vResultatValidation.ResultatTexte)
FIN

Dans ce code, la variable sCheminFichier doit contenir le chemin et le nom du fichier PDF de votre facture. Vous appelez la fonction WS_1_ConnexionDevVersPA pour vous connecter à l'API. Puis appelez la fonction WS_2_ValidationFacturX pour demander le test de validation de votre facture. En résultat, vous avez un booléen qui indique si la facture est valide. Si ce n'est pas le cas, vous obtiendrez un texte explicatif des raisons de l'invalidité de votre facture.

Si vous souhaitez générer une facture au format Factur-X, il faut d'abord préparer un fichier JSON dont voici un exemple à télécharger :

https://devverspa.fr/Exemples_Fichiers/Facture_Francais_Fnfe.json

Cet exemple est basé sur un exemple du kit fourni par FNFE https://fnfe-mpe.org/. Il s'agit d'une facture complète en EN16931. Le JSON est en français, donc plus facile à compléter.

Pour générer une facture au format Factur-X, voici un exemple de code :

BufFichierPDF est un Buffer
sResultat est une chaîne
sFactureJson est une chaîne
bufFactureJson est un Buffer
sFactureJsonEncodée est une chaîne

bufBufFichierPDFFacturX est un Buffer


BufFichierPDF = fChargeBuffer(SAI_Fichier_PDF)
sFactureJson = fChargeTexte(SAI_Fichier_Json_français)

sTokenConnexion est une chaîne
sTokenConnexion=WS_1_ConnexionDevVersPA("votrelogin","votremotdepasse")

sFichierPDF est une chaîne
sFichierPDF = Encode(BufFichierPDF,encodeBASE64URL)

bufFactureJson=Compresse(sFactureJson)
sFactureJsonEncodée=Encode(bufFactureJson,encodeBASE64URL)


sResultat = WS_3_CreerFacturX(sTokenConnexion,sFactureJsonEncodée,sFichierPDF)

bufBufFichierPDFFacturX = Décode(sResultat,encodeBASE64URL)

fSauveBuffer("C:\Documents\TestFacturX.pdf",bufBufFichierPDFFacturX)

Pour envoyer votre JSON et votre facture au format PDF (ici dans des champs de saisie d'une fenêtre), il faut les encoder en base 64, et pour le JSON on le compresse. En effet, pour simplifier l'intégration de l'API, nous avons fait le choix d'une API au format SOAP plus facile à manipuler dans Windev ou Webdev. Et dans ce cas, c'est le moyen le plus simple pour transmettre les fichiers.

L'API est utilisable avec les versions de Windev 22 à 2026. Pour une version plus ancienne de Windev, c'est possible en utilisant un petit exécutable réalisé avec une version plus récente pour faire la conversion.

Si vous souhaitez tester ces deux fonctionnalités et les intégrer dans vos projets, contactez-nous pour obtenir vos login et mot de passe.


Commentaires