finds.dev← search

// the find

f/fatura

★ 673 · TypeScript · NOASSERTION · updated Aug 2026

eArşiv / eFatura Fatura Oluşturucu

A TypeScript client for Turkey's e-Arşiv/e-Fatura government invoicing portal — it automates logging in, drafting, signing, and downloading officially binding tax invoices through GİB's unofficial web endpoints. It's for Turkish developers or accounting-adjacent SaaS products that need to issue e-invoices programmatically instead of through the GİB web UI by hand.

The test suite is split by concern (auth, invoice, sms, download, recipient, user, composite) with both unit and integration suites plus fixtures and a mock-fetch helper, which is unusually disciplined for a library wrapping a government portal. The API models the real GİB workflow accurately — draft, then find, then sign as separate steps — rather than hiding that complexity behind one opaque call. There's a full docs site (Next.js, MDX content, llms.txt/llms-full.txt for LLM consumption) plus a live browser demo, which is more documentation investment than most 673-star repos bother with.

It's built entirely against GİB's reverse-engineered, undocumented portal endpoints — there's no public API contract, so any change on the government side breaks this silently with no deprecation warning, and the README itself disclaims responsibility for resulting tax/legal issues. Credentials (the actual GİB portal username and password) are passed as plain string arguments with no guidance on secret handling beyond 'ask your accountant,' which is a real liability in a library that signs binding financial documents. The browser demo needs its own gib-proxy API route to work around CORS, meaning this is Node-only in practice despite shipping both CJS and ESM builds. No visible retry or rate-limit handling around the portal calls, which matters when the thing you're calling is a single government server with no documented uptime or throttling behavior.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →