
# Verificar un dominio de remitente de correo electrónico

`POST /v1/email-sender-domains/{sender_domain_id}:verify` · permiso `email-sender-domains:write` · todos los planes

Comprueba ahora los registros DNS del dominio y devuelve el dominio actualizado. La plataforma también comprueba todos los dominios a diario con las mismas reglas:

- Cuando las dos CNAME de DKIM y la CNAME de return-path apuntan a los destinos correctos, un dominio `pending_dns` o `degraded` pasa a `verified`.
- Cuando un dominio `verified` sigue fallando durante 72 horas, pasa a `degraded` y el correo del entorno se envía desde el dominio de la plataforma hasta que se corrijan los registros.
- DMARC se informa en `dmarc_alignment`, pero no es obligatorio. Cuando no existe ningún registro `_dmarc`, `records` incluye uno sugerido.

No se puede comprobar un dominio desactivado por la plataforma. Cada entorno puede ejecutar 20 comprobaciones por hora.

## Solicitud

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `sender_domain_id` | string | sí | ID del dominio remitente (`sdom_…`). |
| `Idempotency-Key` | header | no | Repite la misma respuesta para una solicitud repetida con la misma clave. |

Sin cuerpo de solicitud.

## Respuesta

`200 OK` con el dominio remitente comprobado y `ETag` establecido en su nueva versión. Los campos se describen en [Obtener un dominio de remitente de correo electrónico](get.md).

```json
{
  "id": "sdom_01k7r9m3q5t8v2w4x6y8z0a2b4",
  "domain": "mail.example.com",
  "status": "verified",
  "active_selector": "akp1",
  "dkim_status": "ok",
  "return_path_status": "ok",
  "dmarc_alignment": "no_record",
  "last_checked_at": "2026-10-19T09:30:00Z",
  "failing_since": null,
  "degraded_since": null,
  "records": [
    {
      "type": "CNAME",
      "name": "akp1._domainkey.mail.example.com",
      "value": "akp1.sdom_01k7r9m3q5t8v2w4x6y8z0a2b4.dkim.eu.keenauth.app",
      "required": true
    },
    {
      "type": "CNAME",
      "name": "akp2._domainkey.mail.example.com",
      "value": "akp2.sdom_01k7r9m3q5t8v2w4x6y8z0a2b4.dkim.eu.keenauth.app",
      "required": true
    },
    {
      "type": "CNAME",
      "name": "rp.mail.example.com",
      "value": "rp.eu.mail.keenauth.app",
      "required": true
    },
    {
      "type": "TXT",
      "name": "_dmarc.mail.example.com",
      "value": "v=DMARC1; p=none",
      "required": false
    }
  ],
  "version": 2,
  "created_at": "2026-10-19T09:00:00Z",
  "updated_at": "2026-10-19T09:30:00Z"
}
```

## Errores

| HTTP | código | Cuándo |
|---|---|---|
| 404 | `not_found` | El dominio remitente no existe, pertenece a otro entorno o el ID tiene un formato incorrecto. |
| 409 | `conflict` | La plataforma ha desactivado el dominio. |
| 429 | `rate_limited` | El entorno ejecutó 20 comprobaciones en la última hora, o se superó el límite de frecuencia general; reintente después del período indicado en `Retry-After`. |
| 401 | `unauthenticated` | La credencial falta, no es válida o ha sido revocada. |
| 403 | `insufficient_permissions` | La credencial no tiene el permiso necesario. |
| 503 | `service_unavailable` | Una dependencia no está disponible temporalmente; reintente después del período indicado en `Retry-After`. |

## Ejemplo

```bash
curl -X POST https://api.eu.keenauth.com/v1/email-sender-domains/sdom_01k7r9m3q5t8v2w4x6y8z0a2b4:verify \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth email-sender-domains verify sdom_01k7r9m3q5t8v2w4x6y8z0a2b4`
