public function fetchDeliveryReport(
        $batchId,
        $type = null,
        array $status = null,
        array $code = null
    ) {
        $params = [];

        if (isset($type)) {
            array_push($params, 'type=' . $type);
        }

        if (!empty($status)) {
            $val = urlencode(join(',', $status));
            array_push($params, 'status=' . $val);
        }

        if (!empty($code)) {
            $val = urlencode(join(',', $code));
            array_push($params, 'code=' . $val);
        }

        $path = '/delivery_report';

        if (!empty($params)) {
            $path .= '?' . join('&', $params);
        }

        $result = $this->_get($this->_batchUrl($batchId, $path));
        return Deserialize::batchDeliveryReport($result);
    }