Purchase invoice ================ - This module handles purchase invoice operations which are also referred to as the LPO by the client Purchase Invoice Taxes ---------------------- Taxes in a Purchase Invoice can be computed in two ways: * Apply a global tax rate * Apply item-specific tax rate .. note:: **1. Apply a global tax rate** In this scenario, the taxes will be computed on the invoice total amount. To determine the tax rate to apply, a `Purchase Taxes and Charges Template `_ must be attached to the invoice. **2. Apply item-specific tax rate** In this scenario, specific tax computation is done on items that have a value of **item_tax_template** specified as the invoice is being created. If no item has a **item_tax_template** specified, the taxes will be computed based on the value of **taxes_and_charges** template specified. See `Item Tax Template `_ Create a Purchase Invoice ------------------------- - Endpoint: |BASE_API_URL|.purchase_invoice.create - Method: **POST** - Payload: .. code-block:: json { "transaction_date": "2025-04-10", "created_by": "Nyaga", "created_on": "2025-04-16", "approved_by": "Steve", "approved_on": "2025-04-20", "company_code": "001", "branch_code": "Branch 2", "branch_dim_code": "Branch Dim 2", "document_type": "Contractual", "document_no": "333/45", "contract_no": "333/45/2025", "customer_no": "CUST-1", "customer_name": "XYZ Customer", "reversed": false, "document_date": "2025-01-02", "enquiry_no": "INQ/1/2025", "title": "First Purchase Invoice", "supplier": "Summit Traders Ltd.", "posting_date": "2025-02-01", "due_date": "2025-02-27", "supplier_invoice_no": "PNT/233/3000", "supplier_invoice_date": "2025-02-27", "cost_center": "Main - EFTA", "taxes_and_charges": "Tanzania VAT Exclusive - EFTA", "tax_withholding_category": "Withholding Tax (5%)", "items": [ { "item": "Tractor", "qty": 2, "rate": 100, "expense_account": "999901", }, { "item": "15Ltr Drinking Water", "qty": 2, "rate": 1000, "expense_account": "999901", "item_tax_template": "Tanzania Zero Rated - EFTA", "asset_type": "Motor Vehicle" }, ] } - Headers: .. code-block:: json { "Authorization": "token " } - These fields may not be exhaustive. Check the general guidance section on how to check all the parameters that an endpoint can accept Create a Multi-currency Purchase Invoice ---------------------------------------- **Notes**: .. warning:: - To create an Purchase Invoice that has been denominated in a currency that is different from the base currency (TZS), you will need to provide the following additional parameters in the payload: - **currency**. This is the ISO code for the transacting currency - **exchange_rate**. The exchange rate based on the transacting currency. This will be the equivalent of base currency units to 1 unit of the transacting currency, e.g if the currency is USD, the exchange rate may be something like 2598.4401 - Endpoint: |BASE_API_URL|.purchase_invoice.create - Method: **POST** - Payload: .. code-block:: json { "transaction_date": "2025-04-10", "created_by": "Nyaga", "created_on": "2025-04-16", "approved_by": "Steve", "approved_on": "2025-04-20", "company_code": "001", "branch_code": "Branch 2", "branch_dim_code": "Branch Dim 2", "document_type": "Contractual", "document_no": "333/45", "contract_no": "333/45/2025", "customer_no": "CUST-1", "customer_name": "XYZ Customer", "reversed": false, "document_date": "2025-01-02", "enquiry_no": "INQ/1/2025", "title": "First Purchase Invoice", "supplier": "Summit Traders Ltd.", "posting_date": "2025-02-01", "due_date": "2025-02-27", "supplier_invoice_no": "PNT/233/3000", "supplier_invoice_date": "2025-02-27", "currency": "USD", "exchange_rate": 2598.4401, "payable_account": "21990", "tax_withholding_category": "Withholding Tax (5%)", "items": [ { "item": "Tractor", "qty": 2, "rate": 100 } ] } - Headers: .. code-block:: json { "Authorization": "token " } - These fields may not be exhaustive. Check the general guidance section on how to check all the parameters that an endpoint can accept .. note:: The **payable_account** must be passed in the payload when the transaction currency is a foreign currency. Create a Purchase Invoice specifying the transaction code --------------------------------------------------------- **Notes**: .. note:: There are instances where you want to specify the account which will be affected when the Purchase Invoice is posted. If this account is not specified, the system will use the default accounts - Endpoint: |BASE_API_URL|.purchase_invoice.create - Method: **POST** - Payload: .. code-block:: json { "transaction_date": "2025-04-10", "created_by": "Nyaga", "created_on": "2025-04-16", "approved_by": "Steve", "approved_on": "2025-04-20", "company_code": "001", "branch_code": "Branch 2", "branch_dim_code": "Branch Dim 2", "document_type": "Contractual", "document_no": "333/45", "contract_no": "333/45/2025", "customer_no": "CUST-1", "customer_name": "XYZ Customer", "reversed": false, "document_date": "2025-01-02", "enquiry_no": "INQ/1/2025", "title": "First Purchase Invoice", "supplier": "Summit Traders Ltd.", "posting_date": "2025-02-01", "due_date": "2025-02-27", "supplier_invoice_no": "PNT/233/3000", "supplier_invoice_date": "2025-02-27", "tax_withholding_category": "Withholding Tax (5%)", "items": [ { "item": "Fork list", "expense_account_number": "5204", "qty": 2, "rate": 100 } ] } - Headers: .. code-block:: json { "Authorization": "token " } Get a list of Purchase Invoices ------------------------------- - Endpoint: |BASE_API_URL|.purchase_invoice.list - Method: **GET** - Payload: .. code-block:: json { "fields": ["name", "title", "posting_date", "supplier", "total"], "filters": [["posting_date", "<", "2035-02-24"]], "start": 0, "page_length": 0, "order_by": "creation desc" } - Headers: .. code-block:: json { "Authorization": "token " } - Refer to `Document List API Parameters `_ for guidance on the payload Get a single Purchase Invoice ----------------------------- - Endpoint: |BASE_API_URL|.purchase_invoice.get - Method: **GET** - Payload: .. code-block:: json { "doc_id_": "ACC-PINV-2025-00010" } - Headers: .. code-block:: json { "Authorization": "token " } Delete a Purchase Invoice ------------------------- - Endpoint: |BASE_API_URL|.purchase_invoice.delete - Method: **DELETE** - Payload: .. code-block:: json { "doc_id_": "ACC-PINV-2025-00010" } Cancel a Purchase Invoice ------------------------- - Endpoint: |BASE_API_URL|.purchase_invoice.cancel - Method: **DELETE** - Payload: .. code-block:: json { "doc_id_": "ACC-PINV-2025-00010" }