public function createBill($billId, array $params)
    {
        $params = array_replace_recursive(
            [
                'amount'             => null,
                'currency'           => null,
                'comment'            => null,
                'expirationDateTime' => null,
                'phone'              => null,
                'email'              => null,
                'account'            => null,
                'successUrl'         => null,
                'customFields'       => [
                    'apiClient'        => CLIENT_NAME,
                    'apiClientVersion' => CLIENT_VERSION,
                ],
            ],
            $params
        );

        $bill = $this->requestBuilder(
            $billId,
            self::PUT,
            array_filter(
                [
                    'amount'             => array_filter(
                        [
                            'currency' => (string) $params['currency'],
                            'value'    => $this->normalizeAmount($params['amount']),
                        ]
                    ),
                    'comment'            => (string) $params['comment'],
                    'expirationDateTime' => (string) $params['expirationDateTime'],
                    'customer'           => array_filter(
                        [
                            'phone'   => (string) $params['phone'],
                            'email'   => (string) $params['email'],
                            'account' => (string) $params['account'],
                        ]
                    ),
                    'customFields'       => array_filter($params['customFields']),
                ]
            )
        );
        if (false === empty($bill['payUrl']) && false === empty($params['successUrl'])) {
            $bill['payUrl'] = $this->getPayUrl($bill, $params['successUrl']);
        }

        return $bill;

    }