---
updatedAt: 2026-03-01T18:25:42.000Z
agentTools:
  siteIndex: https://techdocs.akamai.com/llms.txt
  projectIndex: https://techdocs.akamai.com/invoicing/llms.txt
---

# Create a notification

```shell cURL
egcurl --eg-section default --request POST \
  --url "https://$hostname/invoicing-api/v4/notifications" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '
{
    "notificationTitle": "Notification for 1-ABCDEF",
    "notificationStatus": "ACTIVE",
    "emails": [
        "user@example.com"
    ],
    "contracts": [
        "1-ABCDEF"
    ]
}'
```

```node Node
const EdgeGrid = require("akamai-edgegrid")
const os = require("os")
const edgercPath = os.homedir + "/.edgerc.txt"
const edgercSection = "default"
const eg = new EdgeGrid({
  path: edgercPath,
  section: edgercSection,
})

eg.auth({
  path: `/invoicing-api/v4/notifications`,
  method: "POST",
  headers: {
    "Content-Type": "application/json",

    Accept: "application/json",
  },
  body: {
    notificationTitle: "Notification for 1-ABCDEF",
    notificationStatus: "ACTIVE",
    emails: ["user@example.com"],
    contracts: ["1-ABCDEF"],
  },
})
eg.send(function (error, response, body) {
  console.log(JSON.stringify(JSON.parse(body), null, 2))
})
```

```python Python
import requests
import json
from akamai.edgegrid import EdgeGridAuth, EdgeRc
from urllib.parse import urljoin

edgerc = EdgeRc('~/.edgerc.txt')
section = 'default'
baseurl = 'https://%s' % edgerc.get(section, 'host')

session = requests.Session()
session.auth = EdgeGridAuth.from_edgerc(edgerc, section)
 

path = '/invoicing-api/v4/notifications'
headers = {
  "Content-Type": "application/json",

  "Accept": "application/json"}
payload = {
    "notificationTitle": "Notification for 1-ABCDEF",
    "notificationStatus": "ACTIVE",
    "emails": [
        "user@example.com"
    ],
    "contracts": [
        "1-ABCDEF"
    ]
}  

result = session.post(urljoin(baseurl, path), headers=headers, json=payload)
print(result.status_code)
print(json.dumps(result.json(), indent=2)) 
```

```json Response Example
{
    "notificationId": 25056,
    "notificationTitle": "Notification for 1-ABCDEF",
    "creationDate": "2020-12-09T08:30:14.477",
    "modificationDate": "2020-12-09T08:30:14.477",
    "notificationStatus": "ACTIVE",
    "emails": [
        "user@example.com"
    ],
    "contracts": [
        "1-ABCDEF"
    ]
}
```

# Set up authorization

<!-- shell@1 -->
<!-- node@1-8 -->
<!-- python@3-11 -->

Before you can use this API, you need to [Create authentication credentials](https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials).

Then, you can use these code samples to apply the token values to your requests.

# Set the notificationTitle

<!-- shell@7 -->
<!-- node@19 -->
<!-- python@20 -->

Set the title of the notification.

# Set the notificationStatus

<!-- shell@8 -->
<!-- node@20 -->
<!-- python@21 -->

Set the status of the notification. Either `ACTIVE` to notify recipients about changes to invoices, or `SUSPENDED` to disable a notification.

# Set emails

<!-- shell@9-11 -->
<!-- node@21 -->
<!-- python@22-24 -->

Se the recipients’ email addresses.

# Set contracts

<!-- shell@12-14 -->
<!-- node@22 -->
<!-- python@25-27 -->

Run the [List contracts](https://techdocs.akamai.com/contract-api/reference/get-contract-ids) operation to list contracts that a user has access to. Set `contracts` to `contractId` values assigned to the contracts for which the notification applies.

# Call the API

<!-- shell@1-15 -->
<!-- node@1-27 -->
<!-- python@1-32 -->

Call POST on the request URL, providing the body request object.

# Review the response output



The response returns the new notification. If you want to access the new notification, store the response’s `Location`.