public function getInvoice($invoiceId = null)
    {

        $signature = $this->auth->getSignatureHash('{ml}:{ii}:{vp}', [
            'ml' => $this->auth->getMerchantLogin(),
            'ii' => $invoiceId,
            'vp' => $this->auth->getValidationPassword(),
        ]);

        $response = $this->sendRequest(
            $this->serviceBaseUrl . 'OpState',
            [
                'MerchantLogin' => $this->auth->getMerchantLogin(),
                'InvoiceID'     => $invoiceId,
                'Signature'     => $signature
            ],
            $this->requestMethod
        );

        $sxe = simplexml_load_string($response);
        $this->parseError($sxe);
        return [
            'InvoiceId'                => (int)$invoiceId,
            'StateCode'                => (int)$sxe->State->Code,
            'RequestDate'              => new \DateTime((string)$sxe->State->RequestDate),
            'StateDate'                => new \DateTime((string)$sxe->State->StateDate),
            'PaymentMethod'            => (string)$sxe->Info->IncCurrLabel,
            'ClientSum'                => (float)$sxe->Info->IncSum,
            'ClientAccount'            => (string)$sxe->Info->IncAccount,
            'PaymentMethodCode'        => (string)$sxe->Info->PaymentMethod->Code,
            'PaymentMethodDescription' => (string)$sxe->Info->PaymentMethod->Description,
            'Currency'                 => (string)$sxe->Info->OutCurrLabel,
            'ShopSum'                  => (float)$sxe->Info->OutSum,
        ];
    }