{"info":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","description":"<html><head></head><body><h1 id=\"microservicio-blacklist\">Microservicio Blacklist</h1>\n<p>API REST para gestionar una lista negra global de correos electrónicos.</p>\n<h2 id=\"autenticación\">Autenticación</h2>\n<p>Todos los endpoints requieren un <strong>Bearer Token</strong> en el header <code>Authorization</code>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;STATIC_TOKEN&gt;\n</code></pre><p>El token estático por defecto es <code>my-static-bearer-token</code> (configurable vía variable de entorno <code>STATIC_TOKEN</code>).</p>\n<h2 id=\"base-url\">Base URL</h2>\n<ul>\n<li><strong>Local:</strong> <code>http://localhost:5000</code></li>\n<li><strong>Producción (AWS EB):</strong> Sustituir por la URL del Elastic Beanstalk.</li>\n</ul>\n<h2 id=\"endpoints\">Endpoints</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Método</th>\n<th>Ruta</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>POST</td>\n<td>/blacklists</td>\n<td>Agregar un email a la lista negra</td>\n</tr>\n<tr>\n<td>GET</td>\n<td>/blacklists/{email}</td>\n<td>Consultar si un email está en la lista negra</td>\n</tr>\n</tbody>\n</table>\n</div></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Microservicio Blacklist","slug":"microservicio-blacklist"}],"owner":"22595946","collectionId":"d9b3a047-40da-4c39-839a-622adbccedb1","publishedId":"2sBXitBSSc","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-04-10T01:01:31.000Z"},"item":[{"name":"Agregar email a la lista negra","event":[{"listen":"prerequest","script":{"exec":["var randomId = Math.random().toString(36).substring(2, 10);","var email = 'test_' + randomId + '@ejemplo.com';","pm.collectionVariables.set('TEST_EMAIL', email);"],"type":"text/javascript","id":"597ea39a-fe50-42ab-88cc-369a623d8eea"}},{"listen":"test","script":{"exec":["pm.test('Status code is 201', function () {","    pm.response.to.have.status(201);","});","pm.test('Response contains success message', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.msg).to.eql('El email fue agregado a la lista negra');","});"],"type":"text/javascript","id":"dc6ac4a8-21aa-4250-83b0-28d6789a25d1"}}],"id":"b92f402d-6f23-49ab-8c9c-fd7a4c8330df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"blocked_reason\": \"Actividad sospechosa detectada\"\n}"},"url":"http://localhost:5000/blacklists","description":"<h2 id=\"agregar-email-a-la-lista-negra-global\">Agregar email a la lista negra global</h2>\n<p>Registra un correo electrónico en la lista negra. El microservicio captura automáticamente la IP de origen y la fecha/hora UTC.</p>\n<h3 id=\"headers-requeridos\">Headers requeridos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer &lt;token&gt;</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>application/json</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"body-json\">Body (JSON)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Sí</td>\n<td>Dirección de correo electrónico válida</td>\n</tr>\n<tr>\n<td>app_uuid</td>\n<td>string</td>\n<td>Sí</td>\n<td>UUID de la aplicación que solicita el bloqueo</td>\n</tr>\n<tr>\n<td>blocked_reason</td>\n<td>string</td>\n<td>No</td>\n<td>Razón del bloqueo (máx. 255 caracteres)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"campos-capturados-automáticamente\">Campos capturados automáticamente</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>request_ip</td>\n<td>IP de origen del request</td>\n</tr>\n<tr>\n<td>created_at</td>\n<td>Fecha y hora UTC de creación</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"respuestas\">Respuestas</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>201</td>\n<td>Email agregado exitosamente</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Datos de entrada inválidos (email mal formado, campos faltantes)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Token de autorización inválido o ausente</td>\n</tr>\n<tr>\n<td>409</td>\n<td>El email ya existe en la lista negra</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]},"isInherited":true,"source":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","type":"collection"}},"urlObject":{"path":["blacklists"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"deb7dd7e-c2b8-4759-b4ec-c69cc5e6574f","name":"201 - Email agregado exitosamente","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"usuario@ejemplo.com\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"blocked_reason\": \"Actividad sospechosa detectada\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"El email fue agregado a la lista negra\"\n}"},{"id":"0fe320f7-009d-49b4-8516-dd2d6d4793b7","name":"400 - Datos de entrada inválidos","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"correo-invalido\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Datos de entrada inválidos\",\n    \"errors\": {\n        \"email\": [\"Not a valid email address.\"]\n    }\n}"},{"id":"c3ac8496-3a6d-49cb-a4c0-71db072187df","name":"409 - Email ya existe en la lista negra","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"usuario@ejemplo.com\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"blocked_reason\": \"Duplicado\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Conflict","code":409,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"El email ya existe en la lista negra\"\n}"},{"id":"3cb9059e-ab9e-44f5-8e0f-fee59a83ed19","name":"401 - Token inválido","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer token-incorrecto"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"usuario@ejemplo.com\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Token inválido\"\n}"}],"_postman_id":"b92f402d-6f23-49ab-8c9c-fd7a4c8330df"},{"name":"Consultar email en la lista negra (existe)","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Email is blacklisted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.blacklisted).to.eql(true);","});","pm.test('Response has blocked_reason', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property('blocked_reason');","});"],"type":"text/javascript","id":"d753a49a-6244-4844-86ea-1e5b7c20d1c2"}}],"id":"ab2956d6-12d3-4ada-add1-3180d225d6a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/blacklists/","description":"<h2 id=\"consultar-si-un-email-está-en-la-lista-negra\">Consultar si un email está en la lista negra</h2>\n<p>Verifica si un correo electrónico se encuentra registrado en la lista negra global.</p>\n<h3 id=\"headers-requeridos\">Headers requeridos</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>Bearer &lt;token&gt;</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"parámetros-de-url\">Parámetros de URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Dirección de correo electrónico a consultar</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"respuestas\">Respuestas</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Consulta exitosa. Retorna <code>blacklisted: true/false</code> y la razón de bloqueo si existe</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Token de autorización inválido o ausente</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"campos-de-respuesta\">Campos de respuesta</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>blacklisted</td>\n<td>boolean</td>\n<td><code>true</code> si el email está en la lista negra, <code>false</code> si no</td>\n</tr>\n<tr>\n<td>blocked_reason</td>\n<td>string / null</td>\n<td>Razón del bloqueo (si aplica)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]},"isInherited":true,"source":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","type":"collection"}},"urlObject":{"path":["blacklists",""],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"dc30de9b-20e3-4ca8-a0f8-dfe0f4501fdc","name":"200 - Email encontrado en lista negra","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"url":"http://localhost:5000/blacklists/usuario@ejemplo.com"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"blacklisted\": true,\n    \"blocked_reason\": \"Actividad sospechosa detectada\"\n}"},{"id":"c224566b-495e-4b16-aaeb-46c318950673","name":"200 - Email NO encontrado en lista negra","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"url":"http://localhost:5000/blacklists/otro@ejemplo.com"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"blacklisted\": false,\n    \"blocked_reason\": null\n}"},{"id":"0ab7d023-5a0d-4f11-821c-c5644e16e552","name":"401 - Sin token de autorización","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/blacklists/usuario@ejemplo.com"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Token de autorización requerido\"\n}"}],"_postman_id":"ab2956d6-12d3-4ada-add1-3180d225d6a0"},{"name":"Consultar email en la lista negra (no existe)","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Email is NOT blacklisted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.blacklisted).to.eql(false);","});","pm.test('blocked_reason is null', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.blocked_reason).to.eql(null);","});"],"type":"text/javascript","id":"981661b5-d70d-453f-86f4-4a27ed8678af"}}],"id":"9edee514-d32b-47be-acb5-16979e05889e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/blacklists/noexiste@ejemplo.com","description":"<h2 id=\"consultar-email-que-no-está-en-la-lista-negra\">Consultar email que NO está en la lista negra</h2>\n<p>Escenario donde se consulta un correo que no ha sido registrado en la lista negra. Retorna <code>blacklisted: false</code>.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]},"isInherited":true,"source":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","type":"collection"}},"urlObject":{"path":["blacklists","noexiste@ejemplo.com"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"13baa496-dad3-4acf-abc2-0a966df2c05c","name":"200 - Email no está en la lista negra","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"url":"http://localhost:5000/blacklists/noexiste@ejemplo.com"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"blacklisted\": false,\n    \"blocked_reason\": null\n}"}],"_postman_id":"9edee514-d32b-47be-acb5-16979e05889e"},{"name":"POST sin token - Error 401","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 401', function () {","    pm.response.to.have.status(401);","});","pm.test('Response contains auth error message', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.msg).to.eql('Token de autorización requerido');","});"],"type":"text/javascript","id":"d5a2ca02-64c9-4248-a9f8-baa0fa627bca"}}],"id":"46206377-1efb-4837-a97c-b50d2989e478","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"test@ejemplo.com\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n}"},"url":"http://localhost:5000/blacklists","description":"<h2 id=\"escenario-post-sin-token-de-autorización\">Escenario: POST sin token de autorización</h2>\n<p>Valida que el endpoint rechaza peticiones sin el header <code>Authorization</code>.</p>\n","urlObject":{"path":["blacklists"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"b9521559-b9cc-4b2f-9de7-515583ed081a","name":"401 - Token requerido","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"test@ejemplo.com\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Token de autorización requerido\"\n}"}],"_postman_id":"46206377-1efb-4837-a97c-b50d2989e478"},{"name":"POST con email inválido - Error 400","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Response contains validation error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.msg).to.eql('Datos de entrada inválidos');","    pm.expect(jsonData.errors).to.have.property('email');","});"],"type":"text/javascript","id":"3946651d-1f3e-47c1-8d49-614c0a2bcfa0"}}],"id":"7fb2af08-2ded-4216-8a5e-59ecc49e283d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"no-es-un-email\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n}"},"url":"http://localhost:5000/blacklists","description":"<h2 id=\"escenario-post-con-email-inválido\">Escenario: POST con email inválido</h2>\n<p>Valida que el endpoint rechaza correos con formato inválido.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]},"isInherited":true,"source":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","type":"collection"}},"urlObject":{"path":["blacklists"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"cf70e867-c8d0-4a6c-bff3-7a9bf0e4e00f","name":"400 - Email inválido","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"no-es-un-email\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Datos de entrada inválidos\",\n    \"errors\": {\n        \"email\": [\"Not a valid email address.\"]\n    }\n}"}],"_postman_id":"7fb2af08-2ded-4216-8a5e-59ecc49e283d"},{"name":"POST sin campos requeridos - Error 400","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Response contains missing fields errors', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.msg).to.eql('Datos de entrada inválidos');","    pm.expect(jsonData.errors).to.have.property('email');","    pm.expect(jsonData.errors).to.have.property('app_uuid');","});"],"type":"text/javascript","id":"fb9c7185-a1eb-4df8-a477-de45d073c36d"}}],"id":"317e75eb-37c8-4f31-a1cf-3682481bc5b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"blocked_reason\": \"Solo la razón, sin email ni app_uuid\"\n}"},"url":"http://localhost:5000/blacklists","description":"<h2 id=\"escenario-post-sin-campos-requeridos\">Escenario: POST sin campos requeridos</h2>\n<p>Valida que el endpoint rechaza peticiones cuando faltan los campos obligatorios <code>email</code> y <code>app_uuid</code>.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]},"isInherited":true,"source":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","type":"collection"}},"urlObject":{"path":["blacklists"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"12bb06e7-3cea-486f-a815-b1d40501a881","name":"400 - Campos requeridos faltantes","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"body":{"mode":"raw","raw":"{\n    \"blocked_reason\": \"Solo la razón, sin email ni app_uuid\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Bad Request","code":400,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Datos de entrada inválidos\",\n    \"errors\": {\n        \"email\": [\"Missing data for required field.\"],\n        \"app_uuid\": [\"Missing data for required field.\"]\n    }\n}"}],"_postman_id":"317e75eb-37c8-4f31-a1cf-3682481bc5b4"},{"name":"POST email duplicado - Error 409","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 409', function () {","    pm.response.to.have.status(409);","});","pm.test('Response contains duplicate error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.msg).to.eql('El email ya existe en la lista negra');","});"],"type":"text/javascript","id":"8816e507-c9e4-4155-a255-bcb975239e8d"}}],"id":"ba3a646a-7d98-4d9e-a859-fd0fa19599e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"blocked_reason\": \"Intento duplicado\"\n}"},"url":"http://localhost:5000/blacklists","description":"<h2 id=\"escenario-post-con-email-duplicado\">Escenario: POST con email duplicado</h2>\n<p>Valida que no se pueda registrar dos veces el mismo correo. Ejecute primero el escenario de creación exitosa antes de correr este escenario.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]},"isInherited":true,"source":{"_postman_id":"d9b3a047-40da-4c39-839a-622adbccedb1","id":"d9b3a047-40da-4c39-839a-622adbccedb1","name":"Blacklist API - Microservicio Lista Negra","type":"collection"}},"urlObject":{"path":["blacklists"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"b02e54a5-bd97-4a6e-b120-296ae30cbfac","name":"409 - Email duplicado","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer my-static-bearer-token"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"usuario@ejemplo.com\",\n    \"app_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"blocked_reason\": \"Intento duplicado\"\n}"},"url":"http://localhost:5000/blacklists"},"status":"Conflict","code":409,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"El email ya existe en la lista negra\"\n}"}],"_postman_id":"ba3a646a-7d98-4d9e-a859-fd0fa19599e5"},{"name":"Health Check","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Service is healthy', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.status).to.eql('ok');","});"],"type":"text/javascript","id":"6d4586e0-7ba3-4362-932c-74420c215b4c"}}],"id":"b9d9fc74-abdd-41da-8667-ef2ecdd788e3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/health","description":"<h2 id=\"health-check\">Health Check</h2>\n<p>Verifica que el servicio esté en línea y respondiendo. No requiere token de autenticación.</p>\n<h3 id=\"respuestas\">Respuestas</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Descripción</th>\n<th>Body</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Servicio operativo</td>\n<td><code>{\"status\": \"ok\"}</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["health"],"host":["http://localhost:5000"],"query":[],"variable":[]}},"response":[{"id":"fe521a2d-aae2-43e9-91c4-66137d00c73c","name":"200 - Servicio operativo","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/health"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"ok\"\n}"}],"_postman_id":"b9d9fc74-abdd-41da-8667-ef2ecdd788e3"}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"my-static-bearer-token"}]}},"variable":[{"key":"BASE_URL","value":"http://localhost:5000"},{"key":"STATIC_TOKEN","value":"my-static-bearer-token"},{"key":"TEST_EMAIL","value":""}]}