> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://es.megaport.ferndocs.com/es/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://es.megaport.ferndocs.com/es/_mcp/server.

# Cambiar Configuración de Notificaciones

PUT https://api.megaport.com/v3/notificationPreferences
Content-Type: application/json

Actualiza la configuración de notificaciones por correo electrónico actual para el usuario que ha iniciado sesión.

Los cambios se definen en el cuerpo de la solicitud. El formato de la solicitud es el mismo que el de la respuesta recibida al enumerar las notificaciones mediante el punto de conexión **Listar configuración de notificaciones**.

Estos parámetros son necesarios para actualizar la configuración de suscripción a notificaciones por correo electrónico:

- `subscriptionKey` - (Cadena) El valor de clave del evento de correo electrónico. Ejecute el punto de conexión **Listar configuración de notificaciones** para obtener la lista completa disponible para el usuario. Por ejemplo, BILLING_START_ADMIN.
    
- `subscribed` - (Booleano) Establezca el valor de `subscribed` en `true` o `false`, según si desea suscribirse al grupo de notificaciones por correo electrónico. Este valor predeterminado será `false` si no se proporciona el valor de suscripción.
    

**Nota**: La respuesta 200 OK siempre devuelve todas las notificaciones del usuario, incluso si solo envía una actualización.

Reference: https://es.megaport.ferndocs.com/es/api-reference/email-notifications/change-notification-settings

## Servers

- `https://api.megaport.com` (Entorno de producción, default)
- `https://api-staging.megaport.com` (Entorno de pruebas (solo pruebas, se restablece cada 24 horas))

## Request

### Body (application/json)

This endpoint expects an object.

- `emails` (list of V3NotificationPreferencesPutRequestBodyContentApplicationJsonSchemaEmailsItems, optional)

## Response

### 200

Cambiar Configuración de Notificaciones - Suscribirse a Dos Notificaciones / Cambiar Configuración de Notificaciones - Suscribirse a Todas las Notificaciones a todo / Cambiar Configuración de Notificaciones - Suscribirse a Todas las Notificaciones a todo / Cambiar Configuración de Notificaciones - Suscribirse a Dos Notificaciones

- `data` (V3NotificationPreferencesPutResponsesContentApplicationJsonSchemaData, optional)
- `message` (string, optional)
- `terms` (string, optional)

## Errors

### 400 Bad Request Error

Cambiar configuración de notificaciones - Clave de suscripción incorrecta / Cambiar configuración de notificaciones - Clave de suscripción incorrecta

- `message` (string, optional)
- `terms` (string, optional)

## Types

### V3NotificationPreferencesPutRequestBodyContentApplicationJsonSchemaEmailsItems

- `subscribed` (boolean, optional)
- `subscriptionKey` (string, optional)

### V3NotificationPreferencesPutResponsesContentApplicationJsonSchemaData

- `emails` (list of V3NotificationPreferencesPutResponsesContentApplicationJsonSchemaDataEmailsItems, optional)
- `receivesChildNotifications` (boolean, optional)

### V3NotificationPreferencesPutResponsesContentApplicationJsonSchemaDataEmailsItems

- `description` (string, optional)
- `messageGroupName` (string, optional)
- `subscribed` (boolean, optional)
- `subscriptionKey` (string, optional)

## Examples

### Change Notification Settings - Subscribe to All Notifications to all

**Response**

```json
{
  "data": {
    "emails": [
      {
        "description": "Cuando el administrador comienza a facturar un servicio",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "BILLING_START_ADMIN"
      },
      {
        "description": "Cuando un servicio se pone en marcha y comenzamos a facturar por él",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "BILLING_START_LIVE"
      },
      {
        "description": "Cuando un usuario modifica exitosamente el término de un servicio",
        "messageGroupName": "Financial",
        "subscribed": false,
        "subscriptionKey": "BILLING_SERVICE_RETERMED"
      },
      {
        "description": "Cuando se usa una tarjeta de crédito para pagar y el pago es exitoso",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_GOOD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito se utiliza para pagar y falla por problemas temporales",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_TEMP_BAD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito se usa para pagar y falla por problemas permanentes",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_PERM_BAD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito ha sido registrada con éxito",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_REGISTER"
      },
      {
        "description": "Cuando un intento de registro de tarjeta de crédito ha fallado",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_REGISTER_FAILED"
      },
      {
        "description": "Cuando una empresa se activa",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_ACTIVATED"
      },
      {
        "description": "Cuando se crea un mercado empresarial",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_NEW"
      },
      {
        "description": "Cuando la cuenta de correo electrónico de facturación se edita en un mercado",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
      },
      {
        "description": "Cuando el cliente rechaza la nueva cuenta de correo electrónico como correo electrónico de contacto de facturación",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
      },
      {
        "description": "Cuando se prepara una nueva factura para el mercado/cliente de facturación",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "INVOICE_NOTIFY_CMD"
      },
      {
        "description": "Cuando se procesa un servicio IX contenido en un pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_IX"
      },
      {
        "description": "Cuando un puerto contenido en un pedido es procesado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_MEGAPORT"
      },
      {
        "description": "Cuando un servicio VXC contenido en un pedido es aprobado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_APPROVED"
      },
      {
        "description": "Cuando un pedido de VXC necesita la aprobación de un extremo",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_PENDING"
      },
      {
        "description": "Cuando un pedido VXC necesita aprobación de un extremo y ha estado esperando más de 1 semana",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_PENDING_PLUS_7"
      },
      {
        "description": "Cuando un pedido VXC en espera de aprobación es rechazado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_REJECTED"
      },
      {
        "description": "Cuando se crea un pedido de primer orden a un proveedor de empresa y mercado",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_FIRST_ORDER"
      },
      {
        "description": "Recordatorio enviado de facturas pendientes o vencidas",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "PAYMENT_REMIND_CMD"
      },
      {
        "description": "Cuando un servicio está configurado",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
      },
      {
        "description": "Cuando un servicio ha sido dado de baja",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
      },
      {
        "description": "Correo electrónico de seguimiento de servicio + 1 semana",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
      },
      {
        "description": "Cuando un servicio se cae (1 correo por hora si el servicio está intermitente)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_STATUS_DOWN"
      },
      {
        "description": "Cuando un servicio sube (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_STATUS_UP"
      },
      {
        "description": "Cuando se realiza un cambio de velocidad que requiere aprobación",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_SPEED"
      },
      {
        "description": "Cuando las obras planificadas están programadas",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_MAINTENANCE"
      },
      {
        "description": "Notificación de Interrupción de Servicio",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_OUTAGE"
      },
      {
        "description": "Cuando una solicitud de pedido está pendiente de aprobación",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_PENDING"
      },
      {
        "description": "Cuando se aprueba una solicitud de pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_APPROVED"
      },
      {
        "description": "Cuando se rechaza una solicitud de pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_REJECTED"
      },
      {
        "description": "Cuando una solicitud de pedido no se puede procesar",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_FAILED"
      },
      {
        "description": "Cuando una sesión BGP se cae en un servicio (1 correo por hora si el servicio está fluctuando)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_EVENT_BGP_DOWN"
      },
      {
        "description": "Cuando una sesión BGP se levanta en un servicio (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_EVENT_BGP_UP"
      }
    ],
    "receivesChildNotifications": false
  },
  "message": "Tu destino de mensajería ha sido guardado",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Change Notification Settings - Subscribe to All Notifications to all
import requests

url = "https://api.megaport.com/v3/notificationPreferences"

response = requests.put(url)

print(response.json())
```

```javascript Change Notification Settings - Subscribe to All Notifications to all
const url = 'https://api.megaport.com/v3/notificationPreferences';
const options = {method: 'PUT'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Change Notification Settings - Subscribe to All Notifications to all
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v3/notificationPreferences"

	req, _ := http.NewRequest("PUT", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Change Notification Settings - Subscribe to All Notifications to all
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v3/notificationPreferences")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
```

```java Change Notification Settings - Subscribe to All Notifications to all
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.megaport.com/v3/notificationPreferences")
  .asString();
```

```php Change Notification Settings - Subscribe to All Notifications to all
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.megaport.com/v3/notificationPreferences');

echo $response->getBody();
```

```csharp Change Notification Settings - Subscribe to All Notifications to all
using RestSharp;

var client = new RestClient("https://api.megaport.com/v3/notificationPreferences");
var request = new RestRequest(Method.PUT);
IRestResponse response = client.Execute(request);
```

```swift Change Notification Settings - Subscribe to All Notifications to all
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v3/notificationPreferences")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Change Notification Settings - Subscribe to Two Notifications

**Response**

```json
{
  "data": {
    "emails": [
      {
        "description": "Cuando el administrador comienza a facturar un servicio",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "BILLING_START_ADMIN"
      },
      {
        "description": "Cuando un servicio se pone en marcha y comenzamos a facturar por él",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "BILLING_START_LIVE"
      },
      {
        "description": "Cuando un usuario modifica exitosamente el plazo de un servicio",
        "messageGroupName": "Financial",
        "subscribed": false,
        "subscriptionKey": "BILLING_SERVICE_RETERMED"
      },
      {
        "description": "Cuando se usa una tarjeta de crédito para pagar y el pago es exitoso",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_GOOD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito se utiliza para pagar y falla por problemas temporales",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_TEMP_BAD_PAYMENT"
      },
      {
        "description": "Cuando se usa una tarjeta de crédito para pagar y falla por problemas permanentes",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_PERM_BAD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito ha sido registrada con éxito",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_REGISTER"
      },
      {
        "description": "Cuando un intento de registro de tarjeta de crédito ha fallado",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_REGISTER_FAILED"
      },
      {
        "description": "Cuando una empresa se activa",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_ACTIVATED"
      },
      {
        "description": "Cuando se crea un mercado empresarial",
        "messageGroupName": "Company",
        "subscribed": false,
        "subscriptionKey": "COMPANY_SUPPLY_NEW"
      },
      {
        "description": "Cuando se edita la cuenta de correo electrónico de facturación en un mercado",
        "messageGroupName": "Company",
        "subscribed": false,
        "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
      },
      {
        "description": "Cuando el cliente rechaza la nueva cuenta de correo electrónico como correo electrónico de contacto de facturación",
        "messageGroupName": "Company",
        "subscribed": false,
        "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
      },
      {
        "description": "Cuando se prepara una nueva factura para el mercado/cliente de facturación",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "INVOICE_NOTIFY_CMD"
      },
      {
        "description": "Cuando un servicio IX contenido en un pedido es procesado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_IX"
      },
      {
        "description": "Cuando se procesa un puerto contenido en una orden",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_MEGAPORT"
      },
      {
        "description": "Cuando un servicio VXC contenido en un pedido es aprobado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_APPROVED"
      },
      {
        "description": "Cuando un pedido VXC necesita aprobación de un extremo",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_PENDING"
      },
      {
        "description": "Cuando un pedido de VXC necesita aprobación de un extremo y ha estado esperando más de 1 semana",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_PENDING_PLUS_7"
      },
      {
        "description": "Cuando un pedido VXC en espera de aprobación es rechazado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_REJECTED"
      },
      {
        "description": "Cuando se crea un primer pedido para una empresa y un proveedor de mercado",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_FIRST_ORDER"
      },
      {
        "description": "Recordatorio enviado de facturas pendientes o vencidas",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "PAYMENT_REMIND_CMD"
      },
      {
        "description": "Cuando un servicio está configurado",
        "messageGroupName": "Services",
        "subscribed": false,
        "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
      },
      {
        "description": "Cuando un servicio ha sido dado de baja",
        "messageGroupName": "Services",
        "subscribed": false,
        "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
      },
      {
        "description": "Correo de seguimiento de servicio + 1 semana",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
      },
      {
        "description": "Cuando un servicio se cae (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": false,
        "subscriptionKey": "SERVICE_STATUS_DOWN"
      },
      {
        "description": "Cuando un servicio sube (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": false,
        "subscriptionKey": "SERVICE_STATUS_UP"
      },
      {
        "description": "Cuando se realiza un cambio de velocidad que requiere aprobación",
        "messageGroupName": "Services",
        "subscribed": false,
        "subscriptionKey": "SERVICE_SPEED"
      },
      {
        "description": "Cuando las obras planificadas están programadas",
        "messageGroupName": "Services",
        "subscribed": false,
        "subscriptionKey": "SERVICE_MAINTENANCE"
      },
      {
        "description": "Notificación de Interrupción del Servicio",
        "messageGroupName": "Services",
        "subscribed": false,
        "subscriptionKey": "SERVICE_OUTAGE"
      },
      {
        "description": "Cuando una solicitud de pedido está pendiente de aprobación",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_PENDING"
      },
      {
        "description": "Cuando se aprueba una solicitud de pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_APPROVED"
      },
      {
        "description": "Cuando se rechaza una solicitud de pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_REJECTED"
      },
      {
        "description": "Cuando una solicitud de pedido no puede procesarse",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_FAILED"
      },
      {
        "description": "Cuando una sesión BGP se cae en un servicio (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": false,
        "subscriptionKey": "SERVICE_EVENT_BGP_DOWN"
      },
      {
        "description": "Cuando una sesión BGP se levanta en un servicio (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": false,
        "subscriptionKey": "SERVICE_EVENT_BGP_UP"
      }
    ],
    "receivesChildNotifications": false
  },
  "message": "Su destino de mensajería ha sido guardado",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Change Notification Settings - Subscribe to Two Notifications
import requests

url = "https://api.megaport.com/v3/notificationPreferences"

response = requests.put(url)

print(response.json())
```

```javascript Change Notification Settings - Subscribe to Two Notifications
const url = 'https://api.megaport.com/v3/notificationPreferences';
const options = {method: 'PUT'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Change Notification Settings - Subscribe to Two Notifications
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v3/notificationPreferences"

	req, _ := http.NewRequest("PUT", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Change Notification Settings - Subscribe to Two Notifications
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v3/notificationPreferences")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
```

```java Change Notification Settings - Subscribe to Two Notifications
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.megaport.com/v3/notificationPreferences")
  .asString();
```

```php Change Notification Settings - Subscribe to Two Notifications
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.megaport.com/v3/notificationPreferences');

echo $response->getBody();
```

```csharp Change Notification Settings - Subscribe to Two Notifications
using RestSharp;

var client = new RestClient("https://api.megaport.com/v3/notificationPreferences");
var request = new RestRequest(Method.PUT);
IRestResponse response = client.Execute(request);
```

```swift Change Notification Settings - Subscribe to Two Notifications
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v3/notificationPreferences")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Change Notification Settings

**Request**

```json
{
  "emails": [
    {
      "subscribed": true,
      "subscriptionKey": "COMPANY_ACTIVATED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_NEW"
    },
    {
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_SPEED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_MAINTENANCE"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_OUTAGE"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
    },
    {
      "subscribed": true,
      "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
    }
  ]
}
```

**Response**

```json
{
  "data": {
    "emails": [
      {
        "description": "Cuando el administrador comienza a facturar un servicio",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "BILLING_START_ADMIN"
      },
      {
        "description": "Cuando un servicio se pone en marcha y comenzamos a facturar por él",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "BILLING_START_LIVE"
      },
      {
        "description": "Cuando un usuario modifica exitosamente el término de un servicio",
        "messageGroupName": "Financial",
        "subscribed": false,
        "subscriptionKey": "BILLING_SERVICE_RETERMED"
      },
      {
        "description": "Cuando se usa una tarjeta de crédito para pagar y el pago es exitoso",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_GOOD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito se utiliza para pagar y falla por problemas temporales",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_TEMP_BAD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito se usa para pagar y falla por problemas permanentes",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_PERM_BAD_PAYMENT"
      },
      {
        "description": "Cuando una tarjeta de crédito ha sido registrada con éxito",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_REGISTER"
      },
      {
        "description": "Cuando un intento de registro de tarjeta de crédito ha fallado",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "CARD_REGISTER_FAILED"
      },
      {
        "description": "Cuando una empresa se activa",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_ACTIVATED"
      },
      {
        "description": "Cuando se crea un mercado empresarial",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_NEW"
      },
      {
        "description": "Cuando la cuenta de correo electrónico de facturación se edita en un mercado",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
      },
      {
        "description": "Cuando el cliente rechaza la nueva cuenta de correo electrónico como correo electrónico de contacto de facturación",
        "messageGroupName": "Company",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
      },
      {
        "description": "Cuando se prepara una nueva factura para el mercado/cliente de facturación",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "INVOICE_NOTIFY_CMD"
      },
      {
        "description": "Cuando se procesa un servicio IX contenido en un pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_IX"
      },
      {
        "description": "Cuando un puerto contenido en un pedido es procesado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_MEGAPORT"
      },
      {
        "description": "Cuando un servicio VXC contenido en un pedido es aprobado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_APPROVED"
      },
      {
        "description": "Cuando un pedido de VXC necesita la aprobación de un extremo",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_PENDING"
      },
      {
        "description": "Cuando un pedido VXC necesita aprobación de un extremo y ha estado esperando más de 1 semana",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_PENDING_PLUS_7"
      },
      {
        "description": "Cuando un pedido VXC en espera de aprobación es rechazado",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_VXC_REJECTED"
      },
      {
        "description": "Cuando se crea un pedido de primer orden a un proveedor de empresa y mercado",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "COMPANY_SUPPLY_FIRST_ORDER"
      },
      {
        "description": "Recordatorio enviado de facturas pendientes o vencidas",
        "messageGroupName": "Financial",
        "subscribed": true,
        "subscriptionKey": "PAYMENT_REMIND_CMD"
      },
      {
        "description": "Cuando un servicio está configurado",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
      },
      {
        "description": "Cuando un servicio ha sido dado de baja",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
      },
      {
        "description": "Correo electrónico de seguimiento de servicio + 1 semana",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
      },
      {
        "description": "Cuando un servicio se cae (1 correo por hora si el servicio está intermitente)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_STATUS_DOWN"
      },
      {
        "description": "Cuando un servicio sube (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_STATUS_UP"
      },
      {
        "description": "Cuando se realiza un cambio de velocidad que requiere aprobación",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_SPEED"
      },
      {
        "description": "Cuando las obras planificadas están programadas",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_MAINTENANCE"
      },
      {
        "description": "Notificación de Interrupción de Servicio",
        "messageGroupName": "Services",
        "subscribed": true,
        "subscriptionKey": "SERVICE_OUTAGE"
      },
      {
        "description": "Cuando una solicitud de pedido está pendiente de aprobación",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_PENDING"
      },
      {
        "description": "Cuando se aprueba una solicitud de pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_APPROVED"
      },
      {
        "description": "Cuando se rechaza una solicitud de pedido",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_REJECTED"
      },
      {
        "description": "Cuando una solicitud de pedido no se puede procesar",
        "messageGroupName": "Ordering",
        "subscribed": true,
        "subscriptionKey": "ORDER_REQUEST_FAILED"
      },
      {
        "description": "Cuando una sesión BGP se cae en un servicio (1 correo por hora si el servicio está fluctuando)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_EVENT_BGP_DOWN"
      },
      {
        "description": "Cuando una sesión BGP se levanta en un servicio (1 correo por hora si el servicio está oscilando)",
        "messageGroupName": "Service Status",
        "subscribed": true,
        "subscriptionKey": "SERVICE_EVENT_BGP_UP"
      }
    ],
    "receivesChildNotifications": false
  },
  "message": "Tu destino de mensajería ha sido guardado",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Change Notification Settings
import requests

url = "https://api.megaport.com/v3/notificationPreferences"

payload = { "emails": [
        {
            "subscribed": True,
            "subscriptionKey": "COMPANY_ACTIVATED"
        },
        {
            "subscribed": False,
            "subscriptionKey": "COMPANY_SUPPLY_NEW"
        },
        {
            "subscribed": False,
            "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
        },
        {
            "subscribed": False,
            "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
        },
        {
            "subscribed": False,
            "subscriptionKey": "SERVICE_SPEED"
        },
        {
            "subscribed": False,
            "subscriptionKey": "SERVICE_MAINTENANCE"
        },
        {
            "subscribed": False,
            "subscriptionKey": "SERVICE_OUTAGE"
        },
        {
            "subscribed": False,
            "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
        },
        {
            "subscribed": False,
            "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
        },
        {
            "subscribed": True,
            "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
        }
    ] }
headers = {"Content-Type": "application/json"}

response = requests.put(url, json=payload, headers=headers)

print(response.json())
```

```javascript Change Notification Settings
const url = 'https://api.megaport.com/v3/notificationPreferences';
const options = {
  method: 'PUT',
  headers: {'Content-Type': 'application/json'},
  body: '{"emails":[{"subscribed":true,"subscriptionKey":"COMPANY_ACTIVATED"},{"subscribed":false,"subscriptionKey":"COMPANY_SUPPLY_NEW"},{"subscribed":false,"subscriptionKey":"COMPANY_SUPPLY_EMAIL_CHANGED"},{"subscribed":false,"subscriptionKey":"COMPANY_SUPPLY_EMAIL_REJECTED"},{"subscribed":false,"subscriptionKey":"SERVICE_SPEED"},{"subscribed":false,"subscriptionKey":"SERVICE_MAINTENANCE"},{"subscribed":false,"subscriptionKey":"SERVICE_OUTAGE"},{"subscribed":false,"subscriptionKey":"SERVICE_LIFECYCLE_CONFIGURED"},{"subscribed":false,"subscriptionKey":"SERVICE_LIFECYCLE_DECOMMISSIONED"},{"subscribed":true,"subscriptionKey":"SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"}]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Change Notification Settings
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v3/notificationPreferences"

	payload := strings.NewReader("{\n  \"emails\": [\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"COMPANY_ACTIVATED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_NEW\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_CHANGED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_REJECTED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_SPEED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_MAINTENANCE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_OUTAGE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_CONFIGURED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_DECOMMISSIONED\"\n    },\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Change Notification Settings
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v3/notificationPreferences")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"emails\": [\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"COMPANY_ACTIVATED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_NEW\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_CHANGED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_REJECTED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_SPEED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_MAINTENANCE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_OUTAGE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_CONFIGURED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_DECOMMISSIONED\"\n    },\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS\"\n    }\n  ]\n}"

response = http.request(request)
puts response.read_body
```

```java Change Notification Settings
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.megaport.com/v3/notificationPreferences")
  .header("Content-Type", "application/json")
  .body("{\n  \"emails\": [\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"COMPANY_ACTIVATED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_NEW\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_CHANGED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_REJECTED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_SPEED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_MAINTENANCE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_OUTAGE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_CONFIGURED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_DECOMMISSIONED\"\n    },\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS\"\n    }\n  ]\n}")
  .asString();
```

```php Change Notification Settings
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.megaport.com/v3/notificationPreferences', [
  'body' => '{
  "emails": [
    {
      "subscribed": true,
      "subscriptionKey": "COMPANY_ACTIVATED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_NEW"
    },
    {
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_SPEED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_MAINTENANCE"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_OUTAGE"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
    },
    {
      "subscribed": false,
      "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
    },
    {
      "subscribed": true,
      "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
    }
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Change Notification Settings
using RestSharp;

var client = new RestClient("https://api.megaport.com/v3/notificationPreferences");
var request = new RestRequest(Method.PUT);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"emails\": [\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"COMPANY_ACTIVATED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_NEW\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_CHANGED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"COMPANY_SUPPLY_EMAIL_REJECTED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_SPEED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_MAINTENANCE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_OUTAGE\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_CONFIGURED\"\n    },\n    {\n      \"subscribed\": false,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_DECOMMISSIONED\"\n    },\n    {\n      \"subscribed\": true,\n      \"subscriptionKey\": \"SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS\"\n    }\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Change Notification Settings
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["emails": [
    [
      "subscribed": true,
      "subscriptionKey": "COMPANY_ACTIVATED"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_NEW"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_EMAIL_CHANGED"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "COMPANY_SUPPLY_EMAIL_REJECTED"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "SERVICE_SPEED"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "SERVICE_MAINTENANCE"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "SERVICE_OUTAGE"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "SERVICE_LIFECYCLE_CONFIGURED"
    ],
    [
      "subscribed": false,
      "subscriptionKey": "SERVICE_LIFECYCLE_DECOMMISSIONED"
    ],
    [
      "subscribed": true,
      "subscriptionKey": "SERVICE_LIFECYCLE_LIVE_PLUS_7_DAYS"
    ]
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v3/notificationPreferences")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```