Saltar al contenido
Docs

Documentación de Mailack.

Quickstart, API de producto y SDKs. Correo certificado con evidencia NOM-151, expuesto como API HTTP y MCP.

API key → send → status → proof-bundle → verify → MCP

  1. 01variables de entorno

    Autenticación con API key

    Exporta la clave del portal (prefijo mlk_). Todas las rutas machine /v1/* exigen Authorization: Bearer. El tenant se resuelve en el servidor a partir de la key.

    variables de entorno
    export MAILACK_API_KEY="mlk_..."
    export MAILACK_API_URL="https://api.mailack.com"
    
    # Cada petición lleva la clave en Authorization.
    curl -s "$MAILACK_API_URL/v1/messages" \
      -H "Authorization: Bearer $MAILACK_API_KEY" \
      -H "Accept: application/json"
  2. 02POST /v1/messages

    Enviar el primer mensaje

    POST /v1/messages con Idempotency-Key. Guarda el id de la respuesta; lo usas en los pasos siguientes. Reintentar con la misma key es seguro (replay).

    POST /v1/messages
    MESSAGE_ID=$(curl -s -X POST "$MAILACK_API_URL/v1/messages" \
      -H "Authorization: Bearer $MAILACK_API_KEY" \
      -H "Idempotency-Key: $(uuidgen)" \
      -H "Content-Type: application/json" \
      -d '{
        "from": "noreply@acme.mx",
        "to": "cliente@ejemplo.com",
        "subject": "Primer mensaje",
        "html": "<p>Hola desde mailack.</p>"
      }' | jq -r .id)
    
    echo "$MESSAGE_ID"
  3. 03GET /v1/messages/{id}

    Consultar su estado

    GET /v1/messages/{id} devuelve el estado de entrega, eventos y metadatos del mensaje.

    GET /v1/messages/{id}
    curl -s "$MAILACK_API_URL/v1/messages/$MESSAGE_ID" \
      -H "Authorization: Bearer $MAILACK_API_KEY" | jq .
  4. 04GET /v1/messages/{id}/proof-bundle

    Descargar el proof bundle

    GET /v1/messages/{id}/proof-bundle. Incluye hash canónico, prueba de inclusión Merkle y, cuando exista, la constancia del PSC Codex.

    GET /v1/messages/{id}/proof-bundle
    curl -s "$MAILACK_API_URL/v1/messages/$MESSAGE_ID/proof-bundle" \
      -H "Authorization: Bearer $MAILACK_API_KEY" \
      -o bundle.json
    
    # Campos de la constancia del PSC Codex en el bundle:
    # certificate_id, serial_number, policy_oid, algorithm_oid, sealed_at
    jq '{certificate_id, serial_number, sealed_at}' bundle.json
  5. 05POST /v1/verify

    Verificarlo

    POST /v1/verify recomputa la prueba de inclusión Merkle y responde valid: true|false. Y sin cuenta, cualquiera puede comprobar el bundle en mailack.com/verificar: la comprobación corre en su navegador, sin que el archivo salga del equipo.

    POST /v1/verify
    curl -s -X POST "$MAILACK_API_URL/v1/verify" \
      -H "Authorization: Bearer $MAILACK_API_KEY" \
      -H "Content-Type: application/json" \
      -d "{\"message_id\": \"$MESSAGE_ID\"}" | jq .
    # → {"valid": true, "merkle_root": "…", "certificate_id": "…", "sealed_at": "…"}
    
    # Sin cuenta: bundle.json en mailack.com/verificar (todo en el navegador)
  6. 06mcpServers.mailack

    Conectar el servidor MCP

    Registra mailack-mcp en tu cliente MCP. El agente puede enviar, consultar, verificar y operar dominios/webhooks con las tools expuestas.

    mcpServers.mailack
    {
      "mcpServers": {
        "Mailack": {
          "command": "./bin/mailack-mcp",
          "env": {
            "MAILACK_API_KEY": "mlk_...",
            "MAILACK_API_URL": "https://api.mailack.com"
          }
        }
      }
    }

Referencia OpenAPI

El contrato formal vive en el repositorio de Mailack (docs/openapi.yaml). Estas páginas son la guía de producto y el camino mínimo hasta el primer proof bundle verificado.