def METHOD_NAME(self, invoice, taxes_vals):
    # see:  def _export_invoice_vals(self, invoice): credit notes (out_refund) will
    # be converted to negative values;
    # why use balance sign here?
    # balance_sign = -1 if invoice.is_inbound() else 1
    balance_sign = 1
    return [
        {
            "currency": invoice.currency_id,
            "currency_dp": invoice.currency_id.decimal_places,
            "tax_amount": balance_sign * taxes_vals["tax_amount_currency"],
            "tax_subtotal_vals": [
                {
                    "currency": invoice.currency_id,
                    "currency_dp": invoice.currency_id.decimal_places,
                    "taxable_amount": balance_sign * vals["base_amount_currency"],
                    "tax_amount": balance_sign * vals["tax_amount_currency"],
                    "percent": vals["_tax_category_vals_"]["percent"],
                    "tax_category_vals": vals["_tax_category_vals_"],
                    "tax_id": vals["group_tax_details"][0]["id"],
                }
                for vals in taxes_vals["tax_details"].values()
            ],
        }
    ]