{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"852d9387-2db1-4cbb-a931-29f0a3ef6d99","name":"Zata API: Streamlined Tax Compliance","description":"Zata is a modern API platform by HIQ Africa (Norrsken House, Kigali, Rwanda) for automated Sales Tax compliance, certified by the Rwanda Revenue Authority (RRA). Built for scale, trust, and developer velocity, Zata blends local regulatory expertise with robust documentation and seamless integrations tailored to Rwanda’s market. Listed on OpenFn.org (Zata Adaptor Docs), Zata connects with 70+ systems via OpenFn’s workflow automation, enabling fast, interoperable data flows for businesses, NGOs, and governments.\n\n- Keep your `Authorization` header set to `Bearer` (see collection variables).\n    \n- Many endpoints require `companyId` (and sometimes `branchId`) headers — ensure these are correct for your tenant.\n    \n- Use App Data endpoints to populate valid IDs (tax, units, categories, etc.).\n    \n- Prefer calculating totals with `/transaction/calculate` before creating sales.\n    \n\n### Get Started Today\n\n- Sign Up: [https://ebm.zata.rw/register](https://calendly.com/hiqafrica)\n    \n- Contact: [info@hiq.africa](https://mailto:info@hiq.africa)\n    \n- API Docs: Zata API Documentation\n    \n- Version: 1.6 (Nov 2025)\n    \n\n### Why Choose Zata?\n\n- Rapid Onboarding: Get your API key and a guided 15‑minute setup to go live quickly.\n    \n- Global Integrations: Connect to Odoo, QuickBooks, and 70+ apps via OpenFn (or engage HIQ Africa for custom integrations).\n    \n- Full Transparency: Clear API connectivity policy, versioning, and change logs.\n    \n- Developer‑Centric: Low‑code workflows, a smart IDE, example payloads, and open tooling.\n    \n- Scalable & Secure: Trusted in 40+ countries; built for sensitive data, high throughput, and compliance.\n    \n\n### API Overview\n\n1) Company Initialization\n\n- Manage company records: list, create, update, retrieve.\n    \n- Use Case: Centralize company data and permissions for multi‑branch operations.\n    \n\n2) Branch Management\n\n- Control branch operations: list, create, update, retrieve.\n    \n- Use Case: Scale to new locations while maintaining consistent governance.\n    \n\n3) Product Management\n\n- Maintain catalog and stock: list, add, update, increase/reduce quantity.\n    \n- Use Case: Keep inventory accurate for real‑time sales, pricing, and forecasting.\n    \n\n4) Transactions\n\n- Sales, refunds, proformas, calculations; signed receipt URLs and downloads.\n    \n- Use Case: Automate invoicing, ensure RRA compliance, reconcile revenue.\n    \n\n5) App Data\n\n- Reference lists (product types, payment modes, taxes, units, categories).\n    \n- Use Case: Power dropdowns, validations, and consistent data entry across UI.\n    \n\n6) Test\n\n- System connectivity health checks.\n    \n- Use Case: Verify availability in CI/CD and pre‑production smoke tests.\n    \n\n7) Parties\n\n- Manage customers and suppliers: list, create.\n    \n- Use Case: Maintain a clean CRM/vendor list for faster checkout and purchasing.\n    \n- Dev Notes: Validate required fields; use pagination and partyType for filtering.\n    \n\n8) Expenses\n\n- Track operational costs: list expenses, create expense, fetch expense categories.\n    \n- Use Case: Record petty cash, utilities, and other OPEX; analyze spend by category.\n    \n- Dev Notes: Requires companyId/branchId; use categories and payment modes from reference endpoints.\n    \n\n9) Finances\n\n- Summaries by payment mode (cash, mobile money, card, etc.).\n    \n- Use Case: End‑of‑day cash‑up and reconciliation; cross‑check POS totals with books.\n    \n\n10) Purchases\n\n- Create internal purchase transactions to restock inventory.\n    \n- Use Case: Record supplier deliveries; update on‑hand stock and batches.\n    \n- Dev Notes: Validate productID, paymentMethodID, batchNumber; optionally expireDate, movingUnit.\n    \n\n11) Transaction PDFs (Signature + Download)\n\n- Generate signed URL and download transaction PDFs.\n    \n- Use Case: Share or print RRA‑compliant receipts/invoices for audits and customers.\n    \n\n### What Developers Can Expect\n\n- Clear Headers: Most endpoints require companyId; many also require branchId.\n    \n- Validations: Helpful error messages; enums/IDs come from App Data.\n    \n- Idempotency: Support safe retries where appropriate (client‑generated ids recommended).\n    \n- Versioning: Stable v1; deprecations communicated ahead of time.\n    \n- Testability: Health check endpoint; realistic example payloads.\n    \n\n### Endpoint Quick Map\n\n| Path | Method | Purpose | Required Headers | Notes |\n| --- | --- | --- | --- | --- |\n| /api/v1/company | GET | List companies (paginated) | Authorization | perPage, page |\n| /api/v1/company | POST | Create company | Authorization | name, address, phone, email, tin |\n| /api/v1/company | PUT | Update company | Authorization, companyId | Partial updates supported |\n| /api/v1/company/{companyId} | GET | Get company by id | Authorization, companyId | Returns insurance block if available |\n| /api/v1/company/branch | GET | List branches | Authorization, companyId | perPage, page |\n| /api/v1/company/branch | POST | Create branch | Authorization, companyId | name, phone, address, branchCategoryID |\n| /api/v1/company/branch | PUT | Update branch | Authorization, companyId, branchId | name, phone, address |\n| /api/v1/product/branch | GET | List branch products | Authorization, companyId, branchId | perPage, page, searchQuery |\n| /api/v1/product | POST | Create product | Authorization, companyId, branchId | Requires valid IDs from App Data |\n| /api/v1/product/{productId} | GET | Get product by id | Authorization, companyId, branchId | Includes batch/stock details |\n| /api/v1/product/{productId} | PUT | Update product | Authorization, companyId, branchId | e.g., name, branchProductCategoryID |\n| /api/v1/product/increase-quantity/{productId} | PUT | Increase product stock | Authorization, companyId, branchId | description, quantity, salePrice, batchNumber |\n| /api/v1/product/reduce-quantity/{productId} | PUT | Reduce product stock | Authorization, companyId, branchId | quantity, description, batchNumber |\n| /api/v1/transaction | GET | List transactions | Authorization, companyId, branchId | perPage, page, fromDate, toDate, invoiceType |\n| /api/v1/transaction/sale | POST | Create sale | Authorization, companyId, branchId | items\\[productID, units, unitPrice, batchNumber,…\\] |\n| /api/v1/transaction/refund/{transactionId} | POST | Create refund | Authorization, companyId, branchId | transactionDate, purchaseCode, note |\n| /api/v1/transaction/proforma | POST | Create proforma | Authorization, companyId, branchId | Like sale; does not alter stock |\n| /api/v1/transaction/calculate | POST | Calculate totals | Authorization, companyId, branchId | Returns line‑level tax/discount/totals |\n| /api/v1/transaction/{transactionId} | GET | Get transaction by id | Authorization, companyId, branchId | Includes item breakdowns |\n| /api/v1/transaction/download-signature/{transactionId} | GET | Generate signed URL | Authorization, companyId, branchId | downloadSize=A4 |\n| /api/v1/transaction/download | GET | Download PDF | Authorization, companyId, branchId | Requires expires, id, signature |\n| /api/v1/party | GET | List parties | Authorization, companyId | partyType=Customer |\n| /api/v1/party/new-customer | POST | Create customer | Authorization, companyId | name, address, phone, email, tin, hasInsurance |\n| /api/v1/party/new-supplier | POST | Create supplier | Authorization, companyId | name, address, phone, email, tin |\n| /api/v1/expense | GET | List expenses | Authorization, companyId, branchId | perPage, page, searchQuery |\n| /api/v1/expense | POST | Create expense | Authorization, companyId, branchId | amount, description, date, categoryID, paymentModeID |\n| /api/v1/expense/categories | GET | List expense categories | Authorization, companyId | Cache recommended |\n| /api/v1/company/finance | GET | Finance summary | Authorization, companyId, branchId | Aggregated by payment mode |\n| /api/v1/data/product-type | GET | Product types | Authorization | Cache for performance |\n| /api/v1/data/payment-mode | GET | Payment modes | Authorization, companyId | Use for validation/UI |\n| /api/v1/data/product-category | GET | Product categories | Authorization | ID source for products |\n| /api/v1/data/product-class | GET | Product classes | Authorization | Optional classification |\n| /api/v1/data/product-quantity-unit | GET | Quantity units | Authorization | Required for products |\n| /api/v1/data/product-packaging-unit | GET | Packaging units | Authorization | Pair with quantity unit |\n| /api/v1/data/product-tax | GET | Tax rates | Authorization | Use for product taxID |\n| /api/v1/data/product-country-origin | GET | Countries of origin | Authorization | Cache recommended |\n| /api/v1/test | GET | Health check | — | Returns service status |\n\n### Unlock Limitless Connectivity with OpenFn\n\nConnect Zata with CRMs, ERPs, databases, and more. OpenFn’s 70+ open‑source adaptors let you build automated workflows to eliminate manual entry, sync data in real time, and scale reliably. Run on OpenFn SaaS or self‑hosted for portability, security, and auditability.\n\nExample: Sync sales from Zata to QuickBooks via OpenFn’s low‑code interface—save time, reduce errors, and maintain audit trails.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"28861196","team":2765690,"collectionId":"852d9387-2db1-4cbb-a931-29f0a3ef6d99","publishedId":"2sB3WnwhWc","public":true,"publicUrl":"https://docs.zata.rw","privateUrl":"https://go.postman.co/documentation/28861196-852d9387-2db1-4cbb-a931-29f0a3ef6d99","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"388e3c"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":"Build RRA‑compliant e‑invoicing fast. Zata offers REST endpoints for companies, branches, products, parties, expenses, and transactions, plus signed PDF receipts, finance summaries, and rich app data. Bearer auth, Postman/OpenAPI ready; integrates with Odoo/QuickBooks via OpenFn."},{"name":"title","value":"Zata API: E‑Invoicing and Streamlined Tax Compliance for Rwanda"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"388e3c"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"388e3c"}}]}},"version":"8.10.0","publishDate":"2025-10-30T15:21:11.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Zata API: E‑Invoicing and Streamlined Tax Compliance for Rwanda","description":"Build RRA‑compliant e‑invoicing fast. Zata offers REST endpoints for companies, branches, products, parties, expenses, and transactions, plus signed PDF receipts, finance summaries, and rich app data. Bearer auth, Postman/OpenAPI ready; integrates with Odoo/QuickBooks via OpenFn."},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/8e20681e1f7c1474e5336d16b2bbf4894d4f09933a8abd9956e0f8d5bab4eec0","favicon":"https://res.cloudinary.com/postman/image/upload/v1761838460/team/dc2e0380ffc3c08c28ba50babd3169b7.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.zata.rw/view/metadata/2sB3WnwhWc"}