I solved this by simulating a $_FILES array:
$file_array = array(
'name' => basename( $file_path ),
'type' => $url_type,
'tmp_name' => $file_path,
'error' => 0,
'size' => filesize( $file_path )
);
And then
$att_id = media_handle_sideload( $file_array, $post_id );
As simple as this..