public function authorize_url($options = null) {

    if ( ! isset($options['redirect_uri'])) {
      throw new GoCardless_ArgumentsException('redirect_uri required');
    }

    $required_options = array(
      "client_id" => $this->account_details['app_id'],
      "scope" => "manage_merchant",
      "response_type" => "code"
    );

    $params = array_merge($required_options, $options);
    $request = GoCardless_Utils::generate_query_string($params);

    return $this->base_url . "/oauth/authorize/?" . $request;

  }