Docs
ETA e-invoicing
The eInvoice Service signs your invoices with the company seal and, if you want, submits them to the Egyptian Tax Authority (ETA).
Pick the right call
| You want to… | Use | ETA credentials needed |
|---|---|---|
| Sign an invoice and submit it yourself | POST /invoice/sign | No |
| Sign and submit to ETA in one call | POST /invoice/submit | Yes |
| Check a signature on a document you hold | POST /invoice/validate | No |
Installed without ETA credentials, the service runs in sign-only mode: sign and validate work, and submit returns an error until credentials are configured. /invoice/submit accepts up to 100 documents per call.
Authentication
Send the service token in the Authorization header, with no Bearer prefix.
The one thing that breaks integrations
JSON.stringify(JSON.parse('{"amountEGP":10.50}')) // {"amountEGP":10.5} <- signature now invalidTreat the response of /invoice/sign as opaque text: store it as text, forward the raw body, and if you must read a field, parse a copy.
All operations
POST /invoice/sign | Sign invoices with the company seal. You submit them to ETA yourself. |
POST /invoice/submit | Sign and submit up to 100 documents to ETA in one call. |
POST /invoice/validate | Check the signature on a document you hold. |
GET /invoice/:uuid | Fetch a submitted document from ETA. |
GET /invoice/:uuid/details | Fetch document details and validation results from ETA. |
GET /invoice/recent | List recent documents. |
PUT /invoice/:uuid/cancel | Cancel an issued document. |
PUT /invoice/:uuid/reject | Reject a received document. |