@except_500_and_return
    def post_tax(self, doc, commit=False):
        if isinstance(doc, dict):
            doc = Document.from_data(doc)
        elif not isinstance(doc, Document):
            raise AvalaraTypeException(AvalaraException.CODE_BAD_DOC, 'Please pass a document or a dictionary to create a Document')
        stem = '/'.join([self.VERSION, 'tax', 'get'])
        doc.update(CompanyCode=self.company_code)
        if commit:
            doc.update(Commit=True)
            self.logger.debug('%s setting Commit=True' % doc.DocCode)
            # need to change doctype if order, to invoice, otherwise commit does nothing
            new_doc_type = {
                Document.DOC_TYPE_SALE_ORDER: Document.DOC_TYPE_SALE_INVOICE,
                Document.DOC_TYPE_RETURN_ORDER: Document.DOC_TYPE_RETURN_INVOICE,
                Document.DOC_TYPE_PURCHASE_ORDER: Document.DOC_TYPE_PURCHASE_INVOICE,
                Document.DOC_TYPE_INVENTORY_ORDER: Document.DOC_TYPE_INVENTORY_INVOICE
            }.get(doc.DocType, None)
            if new_doc_type:
                self.logger.debug('%s updating DocType from %s to %s' % (doc.DocCode, doc.DocType, new_doc_type))
                doc.update(DocType=new_doc_type)
        data = doc.todict()
        resp = self._post(stem, data)
        tax_resp = PostTaxResponse(resp)
        self.logger.info('"POST", %s, %s%s with: %s' % (getattr(doc, 'DocCode', None), self.url, stem, data))
        if not hasattr(doc, 'DocCode'):
            doc.update_doc_code_from_response(tax_resp)
        self.recorder.success(doc)
        return tax_resp
Performs a HTTP POST to tax/get/   If commit=True we will 
dataset/ETHPy150Open activefrequency/pyavatax/pyavatax/api.py/API.post_tax