Przetestuj konfigurację powiadomień

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Wprowadzenie

Funkcja zarabiania udostępnia zestaw interfejsów API, których możesz używać do testowania konfiguracji powiadomień. W szczególności możesz:

Testowanie webhooków

Webhook definiuje wywołanie zwrotne HTTP, które jest wywoływane przez zdarzenie. Informacje o konfigurowaniu webhooków znajdziesz w artykule Konfigurowanie powiadomień za pomocą webhooków.

Możesz przetestować webhooki, wykonując te czynności:

  1. Wyświetlanie dostępnych typów reguł powiadomień webhook
  2. Przykładowy ładunek żądania do testowania powiadomień webhook
  3. Testowanie działania webhooka

Wyświetlanie dostępnych typów reguł powiadomień webhooka

Wyświetl dostępne typy aktywatorów powiadomień webhooka, wysyłając żądanie GET do tego zasobu:

/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}

Gdzie:

  • {org_name} określa nazwę organizacji.
  • {webhook_id} określa identyfikator webhooka. Aby wyświetlić listę webhooków i uzyskać ich identyfikatory, zapoznaj się z artykułem Wyświetlanie wszystkich webhooków za pomocą interfejsu API.
  • {developer_email_or_id} określa identyfikator dewelopera. Aby wyświetlić listę deweloperów, przejdź do sekcji Lista deweloperów.
  • {app_id} określa identyfikator aplikacji, w której testujesz aktywator webhooka. Aby wyświetlić listę identyfikatorów aplikacji w organizacji, zapoznaj się z artykułem Wyświetlanie listy identyfikatorów aplikacji w organizacji.
  • {product_id} określa identyfikator usługi API, dla której testujesz aktywator webhooka. Aby wyświetlić listę usług API w organizacji, przeczytaj artykuł Wyświetlanie listy usług API.
  • {rateplan_id} określa identyfikator abonamentu, dla którego testujesz wywoływanie webhooka. Identyfikator planu cenowego różni się od wyświetlanej nazwy. Aby wyświetlić szczegóły abonamentu, w tym jego identyfikator, zapoznaj się z artykułem Poznawanie strony z abonamentami.

Na przykład poniższe wywołanie cURL zwraca RATEPLANQUOTAUSAGE jako typ aktywatora powiadomień webhooka.

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp" \ 
-u email:password

Poniżej przedstawiamy przykład odpowiedzi:

[
  "RATEPLANQUOTAUSAGE"
]

Następnie musisz określić schemat ładunku żądania dla typu reguły powiadomienia webhook.

Wyświetlanie przykładowego ładunku żądania na potrzeby testowania powiadomienia webhook

Aby wyświetlić przykładowy ładunek żądania, który możesz wykorzystać do testowania powiadomień webhook, wyślij żądanie GET do tego zasobu:

/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}/{trigger_type}

Gdzie:

Na przykład wywołanie cURL z poniższym parametrem zwraca przykładowy ładunek żądania dla typu wyzwalacza powiadomienia webhooka RATEPLANQUOTAUSAGE:

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp/RATEPLANQUOTAUSAGE" \ 
-u email:password

Poniżej znajdziesz przykładowy ładunek żądania:

{
   "eventTriggerReason": "RATEPLANQUOTAUSAGE",
   "properties": [
   {
        "key": "quotaPercentUsed",
        "value": "100"
   }
   ]
}

Następnie odpowiednio modyfikujesz zwrócony ładunek żądania i używasz go do testowania wykonania webhooka.

Testowanie wykonania webhooka

Przetestuj wykonanie webhooka, wysyłając żądanie POST do tego zasobu:

/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}.

Gdzie:

  • {org_name} określa nazwę organizacji.
  • {webhook_id} określa identyfikator webhooka. Aby wyświetlić listę webhooków i uzyskać ich identyfikatory, zapoznaj się z artykułem Wyświetlanie wszystkich webhooków za pomocą interfejsu API.
  • {developer_email_or_id} określa identyfikator dewelopera. Aby wyświetlić listę deweloperów, zapoznaj się z sekcją Tworzenie listy deweloperów.
  • {app_id} określa identyfikator aplikacji, w której przypadku testujesz wywoływanie webhooka. Aby wyświetlić listę identyfikatorów aplikacji w organizacji, zapoznaj się z sekcją Wyświetlanie listy identyfikatorów aplikacji w organizacji.
  • {product_id} określa identyfikator usługi interfejsu API, dla której testujesz uruchamianie webhooka. Aby wyświetlić listę usług API w organizacji, zapoznaj się z artykułem Lista usług API.
  • {rateplan_id} określa identyfikator abonamentu, dla którego testujesz wywoływanie webhooka. Identyfikator planu cenowego różni się od wyświetlanej nazwy. Aby wyświetlić szczegóły abonamentu, w tym jego identyfikator, zapoznaj się z artykułem Poznawanie strony z abonamentami.

Zmodyfikuj zgodnie z potrzebami przykładowy ładunek żądania zwrócony w poprzednim kroku (wyświetl przykładowy ładunek żądania na potrzeby testowania powiadomień webhooka) i przekaż go w ładunku żądania.

Na przykład to wywołanie cURL sprawdza wykonanie określonego webhooka:

curl -H "Content-Type: application/json" -X POST -d \
'{
  "eventTriggerReason": "RATEPLANQUOTAUSAGE",
  "properties": [
    {
      "key": "quotaPercentUsed",
      "value": "120"
    }
  ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp" \ 
-u email:password

Oto przykład odpowiedzi, która wskazuje, że powiadomienie zostało wysłane do webhooka:

{
  "original": {
    "createdDate": 1463619959930,
    "createdTimeStamp": 1463616000000,
    "notificationType": "WEBHOOK",
    "orgId": "myorg",
    "rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"MyPackage\",\"packageId\":\"mypackage\",\"ratePlanId\":\"mypackage_anrp\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":200,\"quotaPercentUsed\":\"120\",\"ratePlanStartDate\":1463616000000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[]\"triggerTime\":1463619959929,\"triggerReason\":\"RATEPLANQUOTAUSAGE\",\"developerQuotaResetDate\":null}",
    "retryCount": 0,
    "retryStatuses": [],
    "source": "MailTo: [36112720-1304-4e0b-9b17-991f5e121ebb], Org: [myorg], TransactionId: [], LimitId: [], Key: []",
    "toEmail": "http://123.45.67.89/webhook",
    "updatedDate": 1463619959930
  },
  "raw": "This is the response",
  "responseCode": 200,
  "status": "NOTIFICATION_SENT"
}

Wyświetlanie i ponowne przetwarzanie powiadomień

Zarabianie umożliwia konfigurowanie powiadomień wywoływanych przez określone zdarzenia. Informacje o konfigurowaniu powiadomień znajdziesz w artykule Konfigurowanie powiadomień.

W przypadku każdego wysłanego powiadomienia są przechowywane te informacje:

  • Liczba ponowień
  • Kod odpowiedzi
  • Nagłówek odpowiedzi
  • Treść odpowiedzi (tylko pierwsze 1000 znaków)

Aby wyświetlić i ponownie przetworzyć powiadomienia, wykonaj te czynności:

  1. Wyświetlanie wysłanych powiadomień
  2. Wyświetlanie szczegółów powiadomienia
  3. Ponowne przetwarzanie powiadomienia

Wyświetlanie wysłanych powiadomień

Wyświetl powiadomienia wysłane dla organizacji, wysyłając żądanie GET do tego zasobu:

/organizations/{org_name}/notification-service-items

Gdzie {org_name} określa nazwę organizacji.

Opcjonalnie możesz podać co najmniej 1 z tych parametrów zapytania, aby odfiltrować listę powiadomień zwróconych w odpowiedzi:

Parametr zapytania Opis
startdate Data rozpoczęcia w formacie YYYY-MM-DD HH:mm:ss.
enddate Data zakończenia w formacie YYYY-MM-DD HH:mm:ss.
status stan powiadomień. Prawidłowe wartości to:
  • BLANK_MESSAGE
  • DUPLICATE
  • FAILED
  • NOTIFICATION_SENT
  • OPT_OUT
  • QUEUED
  • TEMPLATE_NOT_FOUND
toemail Identyfikator e-mail lub webhooka, na które zostało wysłane powiadomienie.

Zwracane jest maksymalnie 1000 powiadomień.

W odpowiedzi flaga hasMoreItems wskazuje, czy liczba powiadomień na określonej liście przekracza 1000. Jeśli hasMoreItems to true, co oznacza, że jest więcej powiadomień, niż można wyświetlić, i chcesz wyświetlić pozostałe powiadomienia, sprecyzuj filtry parametrów zapytania, tak aby przetwarzały mniejsze grupy powiadomień na żądanie. Możesz na przykład wysyłać wiele żądań za pomocą kilku mniejszych zakresów dat lub zwracać powiadomienia tylko z określonymi wartościami stanu.

Na przykład to wywołanie cURL zawiera listę powiadomień z określonego webhooka, które wygenerowały NIEPRAWDĘ i w wybranym zakresie dat:

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items?enddate=2016-05-19 12:00:00&startdate=2016-05-18 12:00:00&status=FAILED&toemail=http://123.45.6789:8000/webhook" \ 
-u email:password 

Oto przykład takiej odpowiedzi:

 {
   "hasMoreItems": false,
   "notifications": [
   { 
      "createdDate": 1463626865974, 
      "createdTimeStamp": 1463616000000, 
      "id": "9d87c6ea-1394-495b-bfb7-1d2e7ef3f837", 
      "notificationType": "WEBHOOK", 
      "orgId": "Org_d40f6c2e-1d6d-11e6-a4ed-af8444f24e4f", 
      "rawMessage": "{\"orgName\":\"Org_d40f6c2e-1d6d-11e6-a4ed-af8444f24e4f\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"MyApp\",
\"packageName\":\"test-package\",\"packageId\":\"myorg@@@test-package-9ubo\",\"ratePlanId\":\"myorg@@@test-package-9ubo_anrp\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",
\"developerRatePlanQuotaTarget\":10,\"quotaPercentUsed\":\"20\",\"ratePlanStartDate\":1463616000000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":1464739200000,\"products\":[\"product1\"],
\"developerCustomAttributes\":[],\"triggerTime\":1463626865907,\"triggerReason\":\"RatePlanQuotaUsage\",\"developerQuotaResetDate\":\"1464810145000\"}", 
      "retryCount": 3, 
      "retryStatuses": [ 
      { 
         "responseCode": 500, 
         "responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}", 
         "retriedAt": 1463626869184,
         "retryAttempt": 1 
      }, 
      { 
         "responseCode": 500, 
         "responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}", 
         "retriedAt": 1463626869318, 
         "retryAttempt": 2 
      }, 
      { 
         "responseCode": 500, 
         "responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}", 
         "retriedAt": 1463626869378, 
         "retryAttempt": 3 
      } 
      ], 
      "source": "MailTo: [6c3cde37-a8f1-4077-adbe-e9f6605a7299], Org: [myorg], TransactionId: [b8d763be-7185-450d-b421-df38c870fabd], LimitId: [RatePlan-Limit:myorg@@@test-package-9ubo_anrp], Key: [myorg@@@kjGSxEGtZeekBEyI~myorg@@@test-package-9ubo_anrp~Transactions~Calls~20]", 
      "status": "FAILED", 
      "toEmail": "http://123.45.67.89:8000/webhook", 
      "updatedDate": 1463626865974 
   } 
   ] 
}

Wyświetlanie szczegółów powiadomienia

Aby wyświetlić szczegóły konkretnego powiadomienia, wyślij żądanie GET do tego zasobu:

/organizations/{org_name}/notification-service-items/{notification_id}

Gdzie:

  • {org_name} określa nazwę organizacji.
  • {notification_id} określa identyfikator powiadomienia, którego szczegóły chcesz wyświetlić. Identyfikator powiadomienia znajdziesz w odpowiedziach, gdy przeglądasz wysłane powiadomienia.

Na przykład to wywołanie cURL zawiera szczegóły powiadomienia o identyfikatorze 4b3dfadf-3a96-4a92-9512-1feff22f74f3:

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items/faa8e6a8-754e-40e8-9e0c-4dee6c9aca23" \ 
-u email:password
 

Oto przykład takiej odpowiedzi:

 {
  "createdDate": 1461062402871,
  "createdTimeStamp": 1461024000000,
  "id": "faa8e6a8-754e-40e8-9e0c-4dee6c9aca23",
  "notificationType": "WEBHOOK",
  "orgId": "myorg",
  "rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[],\"triggerTime\":1461062395966,\"triggerReason\":\"RatePlanQuotaUsage\"}",
  "retryCount": 0,
  "retryStatuses": [],
  "source": "MailTo: [c9e42fcd-9632-4376-b92d-0fa27f178a3b], Org: [myorg], TransactionId: [0352e568-2724-42d9-a264-1b62586d5948], LimitId: [RatePlan-Limit:amyorg@@@mypackage-a0y9_anrp], Key: [myorg@@@PPXsQbkyO1bBhQOh~myorg@@@mypackage-a0y9_anrp~Transactions~Calls~1]",
  "status": "NOTIFICATION_SENT",
  "toEmail": "http://123.45.67.89:8000/webhook",
  "updatedDate": 1461062402871
}

Ponowne przetwarzanie powiadomienia

Przetwórz ponownie powiadomienie, wysyłając żądanie POST do tego zasobu:

/organizations/{org_name}/notification-service-items/{notification_id}/reprocess

Gdzie:

  • {org_name} określa nazwę organizacji.
  • {notification_id} określa identyfikator elementu powiadomienia, którego szczegóły chcesz wyświetlić. Identyfikator powiadomienia znajdziesz w odpowiedziach, gdy przeglądasz wysłane powiadomienia.

Na przykład to wywołanie cURL ponownie przetwarza powiadomienie o identyfikatorze 4b3dfadf-3a96-4a92-9512-1feff22f74f3:

curl -H "Content-Type: application/json" -X POST \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items/faa8e6a8-754e-40e8-9e0c-4dee6c9aca23/reprocess" \ 
-u email:password
 
{
  "createdDate": 1461062402871,
  "createdTimeStamp": 1461024000000,
  "id": "faa8e6a8-754e-40e8-9e0c-4dee6c9aca23",
  "notificationType": "WEBHOOK",
  "orgId": "myorg",
  "rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[],\"triggerTime\":1461062395966,\"triggerReason\":\"RatePlanQuotaUsage\"}",
  "retryCount": 0,
  "retryStatuses": [
    {
      "responseCode": 200,
      "responseMessage": "{\"Headers\":\"[{\"name\":\"Accept-Encoding\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":16,\"elements\":[{\"name\":\"gzip\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"deflate\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"gzip,deflate\"},{\"name\":\"Content-Type\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":13,\"elements\":[{\"name\":\"application/json\",\"value\":null,\"parameters\":[{\"name\":\"charset\",\"value\":\"UTF-8\"}],\"parameterCount\":1}],\"value\":\"application/json; charset=UTF-8\"},{\"name\":\"Date\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":5,\"elements\":[{\"name\":\"Mon\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"23 May 2016 21:46:37 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Mon, 23 May 2016 21:46:37 GMT\"},{\"name\":\"Server\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":7,\"elements\":[{\"name\":\"Apigee Router\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Apigee Router\"},{\"name\":\"User-Agent\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":11,\"elements\":[{\"name\":\"Apache-HttpClient/4.3.5 (java 1.5)\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Apache-HttpClient/4.3.5 (java 1.5)\"},{\"name\":\"X-Forwarded-For\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":16,\"elements\":[{\"name\":\"54.200.58.80\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"54.200.58.80\"},{\"name\":\"X-Forwarded-Port\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":17,\"elements\":[{\"name\":\"80\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"80\"},{\"name\":\"X-Forwarded-Proto\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":18,\"elements\":[{\"name\":\"http\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"http\"},{\"name\":\"Content-Length\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":15,\"elements\":[{\"name\":\"1173\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"1173\"},{\"name\":\"Connection\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":11,\"elements\":[{\"name\":\"keep-alive\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"keep-alive\"}]\",\"StatusCode\":\"200\",\"Content : \":\"{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"MyApp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"product1\"],\"developerCustomAttributes\":[],
  "source": "MailTo: [c9e42fcd-9632-4376-b92d-0fa27f178a3b], Org: [myorg], TransactionId: [0352e568-2724-42d9-a264-1b62586d5948], LimitId: [RatePlan-Limit:amyorg@@@mypackage-a0y9_anrp], Key: [myorg@@@PPXsQbkyO1bBhQOh~myorg@@@mypackage-a0y9_anrp~Transactions~Calls~1]",
  "status": "NOTIFICATION_SENT",
  "toEmail": "http://123.45.67.89:8000/webhook",
  "updatedDate": 1461062402871
}