Acquiring payment service ID
If you want to avoid passing $billId argument down the chain within Bills class - "stub" chain of those methods.
Let the getPaymentServiceId() method do all the "processing" work. Remove calculatePaymentServiceId and createPaymentServiceIdFromCompanyCode methods.  The final result should look like the following:

class Bills {

    private $typeAndPaymentServiceIdMap = [
        0 =&gt; 13,
        1 =&gt; 4, // water
        2 =&gt; 1, // electricity
        3 =&gt; 5, // gas
        4 =&gt; 2, // landline
        5 =&gt; 3, // cellphone
        6 =&gt; 6, // municipality due
        7 =&gt; 6, // municipality due type 7
        9 =&gt; [
            'default' =&gt; 24, // traffic due
            '001' =&gt; 38, // traffic fine
            '002' =&gt; 38, // traffic fine
        ],
    ];
    private $logger;

    public function __construct($logger = "") {
        $this-&gt;logger = $logger;
    }

    public function getType($billId = "") {
        return substr($billId, -2, 1);
    }

    public function getAmount($paymentId = "") {
        $paymentId = str_pad($paymentId, 13, '0', STR_PAD_LEFT);
        $amount = ltrim(substr($paymentId, 0, 8), '0') . '000';

        return $amount;
    }

    public function getCompanyCode($billId = "") {
        return substr($billId, -5, 3);
    }

    public function getPaymentServiceId($billId = "") {
        if (!$billId) {
            $this-&gt;logger-&gt;errorLog('billId is required!');
            return;
        }
        $type = $this-&gt;getType($billId);
        $companyCode = $this-&gt;getCompanyCode($billId);

        if (key_exists($type, $this-&gt;typeAndPaymentServiceIdMap)) {
            $paymentServiceId = $this-&gt;typeAndPaymentServiceIdMap[$type];
            if (is_array($paymentServiceId)) {
                return (key_exists($companyCode, $paymentServiceId))? $paymentServiceId[$companyCode] : $paymentServiceId['default'];
            } else {
                return $paymentServiceId;
            }
        } else {
            $this-&gt;logger-&gt;errorLog('Type ' . $type . ' is not defined in the $typeAndPaymentServiceIdMap.');
        }
    }
}

// $logger object
$bill = new Bills($logger);

var_dump($bill-&gt;getPaymentServiceId("00190"));  // int 38
var_dump($bill-&gt;getPaymentServiceId("00390"));  // int 24