Testa la configurazione delle notifiche

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Introduzione

La monetizzazione fornisce un insieme di API che puoi utilizzare per testare la configurazione delle notifiche. Nello specifico, puoi:

Test dei webhook

Un webhook definisce un gestore di callback HTTP che viene attivato da un evento. Per informazioni sulla configurazione dei webhook, consulta Configurare le notifiche utilizzando i webhook.

Puoi testare i webhook seguendo questi passaggi:

  1. Visualizza i tipi di attivatori di notifiche webhook disponibili
  2. Visualizza un payload di richiesta di esempio per il test delle notifiche webhook
  3. Testare l'esecuzione di un webhook

Visualizzazione dei tipi di attivatori di notifiche webhook disponibili

Visualizza i tipi di trigger di notifica webhook disponibili inviando una richiesta GET alla seguente risorsa:

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

Dove:

  • {org_name} specifica il nome dell'organizzazione.
  • {webhook_id} specifica l'ID del webhook. Per visualizzare un elenco dei webhook e ottenere l'ID webhook, consulta Visualizzare tutti i webhook utilizzando l'API.
  • {developer_email_or_id} specifica l'ID dello sviluppatore. Per visualizzare un elenco di sviluppatori, consulta Sviluppatori di elenchi.
  • {app_id} specifica l'ID dell'applicazione per cui stai testando l'attivazione del webhook. Per elencare gli ID app nella tua organizzazione, consulta Elencare gli ID app in un'organizzazione.
  • {product_id} specifica l'ID del prodotto API per il quale stai testando l'attivazione del webhook. Per visualizzare un elenco dei prodotti API per un'organizzazione, vedi Elenco dei prodotti API.
  • {rateplan_id} specifica l'ID del piano tariffario per il quale stai testando l'attivazione del webhook. L'ID piano tariffario è diverso dal nome visualizzato. Per visualizzare i dettagli del piano tariffario, incluso l'ID, consulta la pagina Esplorare i piani tariffari.

Ad esempio, la seguente chiamata cURL restituisce RATEPLANQUOTAUSAGE come tipo di attivatore delle notifiche webhook.

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

Di seguito è riportato un esempio della risposta:

[
  "RATEPLANQUOTAUSAGE"
]

Successivamente, devi determinare lo schema per il payload della richiesta per il tipo di trigger della notifica webhook.

Visualizzazione di un payload di richiesta di esempio per il test delle notifiche webhook

Visualizza un payload di richiesta di esempio che puoi utilizzare per il test delle notifiche webhook inviando una richiesta GET alla seguente risorsa:

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

Dove:

  • {org_name} specifica il nome dell'organizzazione.
  • {webhook_id} specifica l'ID del webhook. Per visualizzare un elenco dei webhook e ottenere l'ID webhook, consulta Visualizzare tutti i webhook utilizzando l'API.
  • {developer_email_or_id} specifica l'ID dello sviluppatore. Per visualizzare un elenco di sviluppatori, consulta Sviluppatori di elenchi.
  • {app_id} specifica l'ID dell'applicazione per cui stai testando l'attivazione del webhook. Per elencare gli ID app nella tua organizzazione, consulta Elencare gli ID app in un'organizzazione.
  • {product_id} specifica l'ID del prodotto API per il quale stai testando l'attivazione del webhook. Per visualizzare un elenco dei prodotti API per un'organizzazione, vedi Elenco dei prodotti API.
  • {rateplan_id} specifica l'ID del piano tariffario per il quale stai testando l'attivazione del webhook. L'ID piano tariffario è diverso dal nome visualizzato. Per visualizzare i dettagli del piano tariffario, incluso l'ID, consulta la pagina Esplorare i piani tariffari.
  • {trigger_type} specifica il nome del tipo di attivatore delle notifiche webhook restituito nel passaggio precedente (Elenca i tipi di attivatori di notifiche webhook disponibili).

Ad esempio, la seguente chiamata cURL restituisce un payload di richiesta di esempio per il tipo di trigger della notifica webhook 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

Di seguito viene fornito un payload di richiesta di esempio:

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

Successivamente, puoi modificare il payload di esempio della richiesta restituito come preferisci e utilizzarlo per testare l'esecuzione del webhook.

Test dell'esecuzione di un webhook

Verifica l'esecuzione di un webhook inviando una richiesta POST alla seguente risorsa:

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

Dove:

  • {org_name} specifica il nome dell'organizzazione.
  • {webhook_id} specifica l'ID del webhook. Per visualizzare un elenco dei webhook e ottenere l'ID webhook, consulta Visualizzare tutti i webhook utilizzando l'API.
  • {developer_email_or_id} specifica l'ID dello sviluppatore. Per visualizzare un elenco di sviluppatori, consulta Sviluppatori di elenchi.
  • {app_id} specifica l'ID dell'applicazione per cui stai testando l'attivazione del webhook. Per elencare gli ID app nella tua organizzazione, consulta Elencare gli ID app in un'organizzazione.
  • {product_id} specifica l'ID del prodotto API per il quale stai testando l'attivazione del webhook. Per visualizzare un elenco dei prodotti API per un'organizzazione, vedi Elenco dei prodotti API.
  • {rateplan_id} specifica l'ID del piano tariffario per il quale stai testando l'attivazione del webhook. L'ID piano tariffario è diverso dal nome visualizzato. Per visualizzare i dettagli del piano tariffario, incluso l'ID, consulta la pagina Esplorare i piani tariffari.

Modifica come preferisci il payload della richiesta di esempio restituito nel passaggio precedente (Visualizza un payload di richiesta di esempio per il test delle notifiche webhook) e passalo al payload della richiesta.

Ad esempio, la seguente chiamata cURL verifica l'esecuzione del webhook specificato:

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

Di seguito è riportato un esempio della risposta che indica che la notifica è stata inviata correttamente al webhook:

{
  "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"
}

Visualizzazione e rielaborazione delle notifiche

La monetizzazione ti consente di impostare notifiche che vengono attivate da eventi specifici. Per informazioni sulla configurazione delle notifiche, vedi Configurare le notifiche.

Per ogni notifica inviata, vengono memorizzate le seguenti informazioni:

  • Riprova conteggio
  • Codice risposta
  • Intestazione della risposta
  • Contenuto della risposta (solo i primi 1000 caratteri)

Puoi visualizzare e rielaborare le notifiche procedendo nel seguente modo:

  1. Visualizzare le notifiche che sono state inviate
  2. Visualizzare i dettagli di una notifica
  3. Rielaborare una notifica

Visualizzazione delle notifiche inviate

Visualizza le notifiche che sono state inviate per un'organizzazione inviando una richiesta GET alla seguente risorsa:

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

Dove {org_name} specifica il nome dell'organizzazione.

Facoltativamente, puoi specificare uno o più dei seguenti parametri di query per filtrare l'elenco delle notifiche restituite nella risposta:

Parametro di ricerca Descrizione
startdate Data di inizio nel formato YYYY-MM-DD HH:mm:ss.
enddate Data di fine nel formato YYYY-MM-DD HH:mm:ss.
status Stato delle notifiche. I valori validi includono:
  • BLANK_MESSAGE
  • DUPLICATE
  • FAILED
  • NOTIFICATION_SENT
  • OPT_OUT
  • QUEUED
  • TEMPLATE_NOT_FOUND
toemail ID email o webhook a cui è stata inviata la notifica.

Vengono restituite un massimo di 1000 notifiche.

Nella risposta, il flag hasMoreItems indica se il numero di notifiche nell'elenco specificato è superiore a 1000. Se hasMoreItems è true, a indicare che è possibile visualizzare più notifiche e vuoi visualizzare le notifiche rimanenti, devi perfezionare i filtri dei parametri di query in modo da elaborare gruppi più piccoli di notifiche per richiesta. Ad esempio, puoi effettuare più richieste utilizzando diversi intervalli di date più piccoli o restituire notifiche con solo determinati valori di stato.

Ad esempio, la seguente chiamata cURL elenca le notifiche NON RIUSCITA per il webhook specificato nell'intervallo di date specificato:

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 

Di seguito è riportato un esempio della risposta:

 {
   "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 
   } 
   ] 
}

Visualizzazione dei dettagli di una notifica

Visualizza i dettagli di una notifica specifica inviando una richiesta GET alla seguente risorsa:

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

Dove:

  • {org_name} specifica il nome dell'organizzazione.
  • {notification_id} specifica l'ID della notifica per cui vuoi visualizzare i dettagli. Puoi ottenere l'ID notifica dall'output della risposta quando visualizzi le notifiche inviate.

Ad esempio, la seguente chiamata cURL elenca i dettagli della notifica con ID 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
 

Di seguito è riportato un esempio della risposta:

 {
  "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
}

Rielaborazione di una notifica

Rielabora una notifica inviando una richiesta POST alla seguente risorsa:

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

Dove:

  • {org_name} specifica il nome dell'organizzazione.
  • {notification_id} specifica l'ID dell'elemento di notifica per cui desideri visualizzare i dettagli. Puoi ottenere l'ID notifica dall'output della risposta quando visualizzi le notifiche inviate.

Ad esempio, la seguente chiamata cURL rielabora la notifica con ID 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
}