diff --git a/bin/ngcp-fraud-notifier b/bin/ngcp-fraud-notifier
index 94cfa01..d0c455c 100755
--- a/bin/ngcp-fraud-notifier
+++ b/bin/ngcp-fraud-notifier
@@ -75,7 +75,7 @@ sub load_config {
 }
 
 sub get_data {
-    my ($uri, $link) = @_;
+    my ($uri, $link, $code) = @_;
     my $client = new NGCP::API::Client;
     $client->set_verbose($opts->{verbose});
     $client->set_page_rows($page_size);
@@ -89,6 +89,10 @@ sub get_data {
         } elsif ($data) {
             push(@result,$data);
         }
+        if (defined $code and 'CODE' eq ref $code) {
+            &$code(\@result);
+            @result = ();
+        }
     }
     return \@result;
 }
@@ -126,7 +130,7 @@ sub send_email {
     my $template = get_email_template($event);
 
     my $vars = { adminmail => $config->{adminmail},
-                 customer_id => $event->{id},
+                 customer_id => $event->{contract_id},
                  interval => $event->{interval},
                  interval_cost  => sprintf('%.2f', $event->{interval_cost}/100),
                  interval_limit => sprintf('%.2f', $event->{interval_limit}/100),
@@ -176,10 +180,8 @@ sub update_notify_status {
 
     my $client = new NGCP::API::Client;
     $client->set_verbose($opts->{verbose});
-    my $id = sprintf("%d-%s-%s",
-                     @{$event}{qw(id interval interval_date)});
     my $now = strftime('%Y-%m-%d %H:%M:%S', localtime(time));
-    my $uri = '/api/customerfraudevents/'.$id;
+    my $uri = '/api/customerfraudevents/'.$event->{id};
     my $data = [ { op => 'replace',
                    path => '/notify_status',
                    value => 'notified' },
@@ -203,20 +205,22 @@ sub main {
 
     check_params();
     load_config();
-    my $events = get_data(sprintf('/api/customerfraudevents/?no_count=true&notify_status=%s',
-                                  'new'),
-                                  'customerfraudevents');
-    foreach my $event (@{$events}) {
-        my $subscribers = get_data(sprintf('/api/subscribers/?customer_id=%d',
-                                   $event->{id}),
-                                   'subscribers');
-        if ($event->{interval_notify}) {
-            eval {
-                send_email($event, $subscribers);
-            };
+    get_data(
+        sprintf('/api/customerfraudevents/?no_count=true&notify_status=%s','new'),'customerfraudevents', sub {
+        my $events = shift;
+        foreach my $event (@{$events}) {
+            if ($event->{interval_notify}) {
+                my $subscribers = get_data(sprintf('/api/subscribers/?customer_id=%d',
+                    $event->{contract_id}),
+                    'subscribers');
+                next unless scalar @$subscribers;
+                eval {
+                    send_email($event, $subscribers);
+                };
+                print $EVAL_ERROR if $EVAL_ERROR;
+            }
         }
-        print $EVAL_ERROR if $EVAL_ERROR;
-    }
+    });
     return;
 }