{"id":36542199,"url":"https://github.com/jslno/node-zugferd","last_synced_at":"2026-01-12T05:48:17.325Z","repository":{"id":274497833,"uuid":"922301960","full_name":"jslno/node-zugferd","owner":"jslno","description":"A Node.js library for creating ZUGFeRD/Factur-X compliant documents. Generating XML and embedding it into PDF/A files, enabling seamless e-invoicing and digital document compliance.","archived":false,"fork":false,"pushed_at":"2025-12-22T12:03:12.000Z","size":61555,"stargazers_count":50,"open_issues_count":3,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-23T23:12:27.838Z","etag":null,"topics":["business-invoice","cross-industry-invoice","e-invoice","e-rechnung","einvoicing","electronic-invoice","factur-x","invoice-generation","nodejs","pdf-invoice","xml-invoice","zugferd"],"latest_commit_sha":null,"homepage":"https://node-zugferd.jsolano.de","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jslno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-25T20:55:18.000Z","updated_at":"2025-12-22T12:03:16.000Z","dependencies_parsed_at":"2025-01-27T17:46:56.012Z","dependency_job_id":"2090cb20-7838-499f-92df-1e34eeed4eeb","html_url":"https://github.com/jslno/node-zugferd","commit_stats":null,"previous_names":["jslno/node-zugferd"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/jslno/node-zugferd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslno%2Fnode-zugferd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslno%2Fnode-zugferd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslno%2Fnode-zugferd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslno%2Fnode-zugferd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jslno","download_url":"https://codeload.github.com/jslno/node-zugferd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jslno%2Fnode-zugferd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28335279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["business-invoice","cross-industry-invoice","e-invoice","e-rechnung","einvoicing","electronic-invoice","factur-x","invoice-generation","nodejs","pdf-invoice","xml-invoice","zugferd"],"created_at":"2026-01-12T05:48:13.001Z","updated_at":"2026-01-12T05:48:17.321Z","avatar_url":"https://github.com/jslno.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- omit in toc --\u003e\n\u003ch1 align=\"center\" id=\"title\"\u003enode-zugferd\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://socialify.git.ci/jslno/node-zugferd/image?description=0\u0026language=1\u0026name=1\u0026owner=1\u0026pattern=Transparent\u0026stargazers=1\u0026theme=Auto\" alt=\"project-image\" /\u003e\n\u003c/p\u003e\n\n\u003e [!CAUTION]\n\u003e **[WIP]** This package is still under development.\n\nA Node.js library for creating ZUGFeRD/Factur-X compliant documents. Generating XML and embedding it into PDF/A files, enabling seamless e-invoicing and digital document compliance.\n\n\u003ch2\u003eTable of Contents\u003c/h2\u003e\n\n- [Features](#features)\n- [Installation](#installation)\n- [Default Supported Profiles](#default-supported-profiles)\n- [Basic Usage](#basic-usage)\n- [Roadmap](#roadmap)\n- [Dependencies](#dependencies)\n- [License](#license)\n\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\n* Create Factur-X compliant xml\n* Attach xml to pdf/a-3b\n* Validate xml\n\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\nInstall node-zugferd with npm:\n\n```bash\nnpm install node-zugferd@latest\n```\n\n\u003ch2\u003eDefault Supported Profiles\u003c/h2\u003e\n\n\u003e [!WARNING]\n\u003e Documents containing only information of the first two profiles (MINIMUM and BASIC WL) are not considered to be invoices according to German fiscal law ([\u0026#8594; GoBD](https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.html)); they may therefore not be used as electronic invoices in Germany. They will not be considered as invoices in France anymore once the einvoicing B2B mandate CTC reform has been fully deployed (2028). **It is then highly recommended to target the BASIC profile at minimum.**\n\n* MINIMUM\n* BASIC WL\n* BASIC\n* EN 16931 (COMFORT)\n* EXTENDED\n\n\n\u003e [!NOTE]\n\u003e By default this package only provides support for the CII-Syntax\n\n\u003e [!TIP]\n\u003e You can also define your own Profiles.\n\nIf you encounter invalid or missing fields, feel free to open a new [Issue](https://github.com/jslno/node-zugferd/issues) or [Pull Request](https://github.com/jslno/node-zugferd/pulls).\n\n\u003ch2\u003eBasic Usage\u003c/h2\u003e\n\n1. Create a new instance:\n\n    ```ts\n    import { zugferd } from \"node-zugferd\";\n    import { BASIC } from \"node-zugferd/profile/basic\";\n\n    export const invoicer = zugferd({\n        profile: BASIC,\n    });\n    ```\n\n2. Define the documents data\n\n    ```ts\n    import { invoicer } from \"./your/path/invoicer\";\n\n    const data: typeof invoicer.$Infer.Schema = {\n        //... your data\n    };\n\n    const invoice = invoicer.create(data);\n    ```\n3. Save the document\n    \u003cdetails\u003e\n    \u003csummary\u003eas XML\u003c/summary\u003e\n\n    ```ts\n    const xml = await invoice.toXML();\n    ```\n    \u003c/details\u003e\n\n    \u003cdetails open\u003e\n    \u003csummary\u003eas PDF/A-3b\u003c/summary\u003e\n\n    ```ts\n    // The data in your pdf must exactly match the provided data!\n    const pdf = fs.readFileSync(\"./your/invoice.pdf\");\n\n    const pdfA = await invoice.embedInPdf(pdf, {\n        metadata: {\n            title: \"New Invoice\",\n        },\n    });\n    ```\n    \u003c/details\u003e\n\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\n* [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser)\n* [pdf-lib](https://github.com/Hopding/pdf-lib)\n* [xsd-schema-validator](https://github.com/nikku/node-xsd-schema-validator)\n* [zod](https://github.com/colinhacks/zod)\n* [defu](https://github.com/unjs/defu)\n\n\u003ch2\u003eLicense\u003c/h2\u003e\n\nDistributed under the MIT License. See LICENSE.md for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjslno%2Fnode-zugferd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjslno%2Fnode-zugferd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjslno%2Fnode-zugferd/lists"}