Input invoice lookup API
A set of APIs to fetch a business's input (purchase) invoices from the tax portal. The partner provides a tax-portal account (tax code + password); the system automatically logs in, syncs invoices (e-invoices + cash-register invoices), stores them encrypted, and returns them via API.
Safety & security
- Fetch only, no interference — the system automatically logs in and fetches exactly your invoices from the tax portal in place of manual operation. It does not edit, process, or alter the source data — everything is kept identical to what is on the tax portal.
- Strong encryption — the tax code is hashed with HMAC-SHA256 (never stored in raw form); the tax-portal password and sensitive data (names, amounts, line items) are encrypted with AES-256-GCM.
All paths below are relative to the base URL (.../openapi/v1/api-invoice).
| No. | Function | Method | Endpoint | Billing |
|---|---|---|---|---|
| 1 | Register tax-portal account | POST | /tax-accounts | — |
| 2 | Request invoice sync | POST | /tax-accounts/{accountId}/sync | ✅ per invoice |
| 3 | Track progress | GET | /sync-jobs/{jobId} | — |
| 4 | Invoice list | GET | /invoices | ✅ 10% of the sync fee |
| 5 | Invoice details | GET | /invoices/{invoiceId} | ✅ 10% of the sync fee |
| 6 | On-demand detail fetch | POST | /invoices/{invoiceId}/fetch-detail | ✅ per invoice |
| 7 | Usage reconciliation | GET | /tax-accounts/{accountId}/usage | — |
How billing works
- Per invoice — endpoints that call out to the tax portal: sync and on-demand detail fetch (charged by the number of invoices, with tiered pricing; ×1.5 if fetching details).
- 10% of the sync fee / request — endpoints that read stored data: invoice list and invoice details (each call = 10% of the sync fee).
- Free — account registration/management, progress tracking, reconciliation.
Full flow
Main sync parameters
| Field | Type | Default | Meaning |
|---|---|---|---|
dateFrom / dateTo | date (YYYY-MM-DD) | Last 30 days | Invoice issuance date range (up to ~31 days/window; longer ranges are split automatically) |
direction | string | purchase | purchase = purchases (input) |
fetchDetails | boolean | true | true = include line items (details); false = header only (cheaper) |