{
  "id": "e3dd346a-755f-49ae-9473-2837f36c70ef",
  "issuer": "unity",
  "journey": "ntb",
  "startedAt": "2026-06-23T11:11:52.164Z",
  "endedAt": "2026-06-23T11:17:16.363Z",
  "durationMs": 98386,
  "summary": {
    "total": 547,
    "passed": 520,
    "failed": 25,
    "skipped": 2,
    "running": 0,
    "pending": 0,
    "durationMs": 98386
  },
  "steps": [
    {
      "stepId": "unity-step-01-login",
      "stepName": "Login",
      "cases": [
        {
          "caseId": "UNITY_LOGIN_001",
          "caseName": "Send OTP to Unity / USFB test mobile number",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:37.927Z",
          "endedAt": "2026-06-23T11:15:38.012Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "92",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:38 GMT",
            "etag": "W/\"5c-vzt9vmLTv7PM1cZh/5MRbyBihrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2997",
            "x-ratelimit-reset": "52",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "82",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "An error occurred while sending OTP.",
            "payload": {}
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should indicate OTP send success",
              "passed": false,
              "message": "Expected success envelope with success/statusCode"
            },
            {
              "description": "payload.attemptsUsed should be present",
              "passed": false,
              "message": "payload.attemptsUsed missing"
            }
          ],
          "failureReason": "Expected success envelope with success/statusCode; payload.attemptsUsed missing",
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_017",
          "caseName": "Verify success flag for valid send OTP request",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:38.012Z",
          "endedAt": "2026-06-23T11:15:44.722Z",
          "durationMs": 6710,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:44 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2996",
            "x-ratelimit-reset": "52",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6706",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_018",
          "caseName": "Verify body statusCode for valid send OTP request",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:44.722Z",
          "endedAt": "2026-06-23T11:15:44.827Z",
          "durationMs": 105,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "92",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:44 GMT",
            "etag": "W/\"5c-vzt9vmLTv7PM1cZh/5MRbyBihrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2995",
            "x-ratelimit-reset": "45",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "101",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "An error occurred while sending OTP.",
            "payload": {}
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": false,
              "message": "Expected body.statusCode=200"
            }
          ],
          "failureReason": "Expected body.statusCode=200",
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_019",
          "caseName": "Verify success message for send OTP request",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:44.827Z",
          "endedAt": "2026-06-23T11:15:53.153Z",
          "durationMs": 8326,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:53 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2994",
            "x-ratelimit-reset": "45",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8323",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response message should be \"OTP sent successfully.\"",
              "passed": true,
              "message": "message=\"OTP sent successfully.\""
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_020",
          "caseName": "Verify payload object exists in send OTP response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:53.153Z",
          "endedAt": "2026-06-23T11:15:58.748Z",
          "durationMs": 5595,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:58 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2993",
            "x-ratelimit-reset": "37",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5580",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Payload object should exist",
              "passed": true,
              "message": "payload present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_021",
          "caseName": "Verify attemptsUsed value on first send OTP request",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:58.748Z",
          "endedAt": "2026-06-23T11:15:58.831Z",
          "durationMs": 83,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "92",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:58 GMT",
            "etag": "W/\"5c-vzt9vmLTv7PM1cZh/5MRbyBihrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2992",
            "x-ratelimit-reset": "31",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "80",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "An error occurred while sending OTP.",
            "payload": {}
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "payload.attemptsUsed should be 0",
              "passed": false,
              "message": "Expected attemptsUsed=0, got null"
            }
          ],
          "failureReason": "Expected attemptsUsed=0, got null",
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_022",
          "caseName": "Verify send OTP response content type",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:58.831Z",
          "endedAt": "2026-06-23T11:15:58.914Z",
          "durationMs": 83,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "92",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:58 GMT",
            "etag": "W/\"5c-vzt9vmLTv7PM1cZh/5MRbyBihrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2991",
            "x-ratelimit-reset": "31",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "79",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "An error occurred while sending OTP.",
            "payload": {}
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response content type should be application/json",
              "passed": true,
              "message": "content-type=application/json; charset=utf-8"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_023",
          "caseName": "Verify send OTP response schema",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:58.914Z",
          "endedAt": "2026-06-23T11:15:58.994Z",
          "durationMs": 80,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "92",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:15:58 GMT",
            "etag": "W/\"5c-vzt9vmLTv7PM1cZh/5MRbyBihrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2990",
            "x-ratelimit-reset": "31",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "77",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "An error occurred while sending OTP.",
            "payload": {}
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Success response schema should match contract",
              "passed": false,
              "message": "Success schema mismatch"
            }
          ],
          "failureReason": "Success schema mismatch",
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_024",
          "caseName": "Verify send OTP response time",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:15:58.994Z",
          "endedAt": "2026-06-23T11:16:04.756Z",
          "durationMs": 5762,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:04 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2989",
            "x-ratelimit-reset": "31",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5758",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response time should be within 2000ms",
              "passed": false,
              "message": "Expected duration < 2000ms, got 5762"
            }
          ],
          "failureReason": "Expected duration < 2000ms, got 5762",
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_025",
          "caseName": "Verify OTP resend functionality for same mobile",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:04.756Z",
          "endedAt": "2026-06-23T11:16:10.789Z",
          "durationMs": 6033,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:10 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2988",
            "x-ratelimit-reset": "25",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6030",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_026",
          "caseName": "Verify attemptsUsed increments on resend",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:10.789Z",
          "endedAt": "2026-06-23T11:16:16.162Z",
          "durationMs": 5373,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2987",
            "x-ratelimit-reset": "19",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5227",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "payload.attemptsUsed should remain a valid counter on resend",
              "passed": true,
              "message": "attemptsUsed remained valid from 0 to 0"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_003",
          "caseName": "Send OTP should fail when phone is missing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.162Z",
          "endedAt": "2026-06-23T11:16:16.194Z",
          "durationMs": 32,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2986",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "29",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response body should be Bad Request envelope",
              "passed": true,
              "message": "Bad Request envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_004",
          "caseName": "Send OTP should fail when phone is empty",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.194Z",
          "endedAt": "2026-06-23T11:16:16.205Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": ""
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2985",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response body should be Bad Request envelope",
              "passed": true,
              "message": "Bad Request envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_027",
          "caseName": "Send OTP should fail when phone is null",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.205Z",
          "endedAt": "2026-06-23T11:16:16.236Z",
          "durationMs": 31,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": null
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2984",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "28",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":null}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate validation failure",
              "passed": true,
              "message": "Validation error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_005",
          "caseName": "Send OTP should fail for 10-digit phone without 91 prefix",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.236Z",
          "endedAt": "2026-06-23T11:16:16.246Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2983",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_028",
          "caseName": "Send OTP should fail for 11-digit phone number",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.246Z",
          "endedAt": "2026-06-23T11:16:16.257Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "91866833662"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2982",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"91866833662\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_029",
          "caseName": "Send OTP should fail for phone number longer than 12 digits",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.257Z",
          "endedAt": "2026-06-23T11:16:16.268Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9186683366299"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2981",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9186683366299\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_006",
          "caseName": "Send OTP should fail for non-numeric phone",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.268Z",
          "endedAt": "2026-06-23T11:16:16.328Z",
          "durationMs": 60,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "ABCDEFGHIJKL"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2980",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "56",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"ABCDEFGHIJKL\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1003",
              "passed": true,
              "message": "FIXUSER1003 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_030",
          "caseName": "Send OTP should fail for phone with special characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.328Z",
          "endedAt": "2026-06-23T11:16:16.341Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "91@#$%^1234"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2979",
            "x-ratelimit-reset": "14",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"91@#$%^1234\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_031",
          "caseName": "Send OTP should fail for phone containing spaces",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.341Z",
          "endedAt": "2026-06-23T11:16:16.352Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "91 8668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2978",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"91 8668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_032",
          "caseName": "Send OTP should fail for phone with leading space",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.352Z",
          "endedAt": "2026-06-23T11:16:16.363Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": " 918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2977",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\" 918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_033",
          "caseName": "Send OTP should fail for phone with trailing space",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.364Z",
          "endedAt": "2026-06-23T11:16:16.372Z",
          "durationMs": 8,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629 "
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2976",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629 \"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_007",
          "caseName": "Send OTP should fail for too-short phone number",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.372Z",
          "endedAt": "2026-06-23T11:16:16.446Z",
          "durationMs": 74,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9191"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2975",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9191\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_008",
          "caseName": "Send OTP should fail for wrong country code prefix",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.446Z",
          "endedAt": "2026-06-23T11:16:16.531Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "449876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2974",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"449876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_034",
          "caseName": "Send OTP should fail for decimal phone value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.531Z",
          "endedAt": "2026-06-23T11:16:16.539Z",
          "durationMs": 8,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629.5"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2973",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629.5\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_035",
          "caseName": "Send OTP should fail for unicode phone characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.539Z",
          "endedAt": "2026-06-23T11:16:16.549Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "९१८६६८३३६६२९"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2972",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"९१८६६८३३६६२९\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_036",
          "caseName": "Send OTP should reject SQL-injection phone payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.549Z",
          "endedAt": "2026-06-23T11:16:16.557Z",
          "durationMs": 8,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629' OR 1=1"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2971",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629'\\'' OR 1=1\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate request rejection",
              "passed": true,
              "message": "Injection payload rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_037",
          "caseName": "Send OTP should reject XSS phone payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.557Z",
          "endedAt": "2026-06-23T11:16:16.564Z",
          "durationMs": 7,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "<script>alert(1)</script>"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2970",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"<script>alert(1)</script>\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate request rejection",
              "passed": true,
              "message": "XSS payload rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_038",
          "caseName": "Send OTP should reject HTML phone payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.564Z",
          "endedAt": "2026-06-23T11:16:16.631Z",
          "durationMs": 67,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "<h1>test</h1>"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2969",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"<h1>test</h1>\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate request rejection",
              "passed": true,
              "message": "HTML payload rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_039",
          "caseName": "Send OTP should reject JSON-injection payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.631Z",
          "endedAt": "2026-06-23T11:16:16.645Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": "{\"phone\":{\"$ne\":null}}",
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2968",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":{\"$ne\":null}}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate request rejection",
              "passed": true,
              "message": "JSON injection rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_040",
          "caseName": "Send OTP should fail for extremely long phone string",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.645Z",
          "endedAt": "2026-06-23T11:16:16.654Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "310",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"136-V9TtE3DuDamKo6e11Yk6QQ0cAE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2967",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1003",
                "error": "Invalid phone number"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208",
            "FIXUSER1003"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_041",
          "caseName": "Send OTP should fail for malformed JSON body",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.654Z",
          "endedAt": "2026-06-23T11:16:16.660Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": "{\"phone\":",
          "requestQuery": {},
          "responseHeaders": {
            "content-length": "246",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"f6-ySe3EJgjQXC755DXBtbxRm0LZnc\"",
            "vary": "Origin",
            "x-powered-by": "Express",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Unexpected token '\"', \"\"{\\\"phone\\\":\"\" is not valid JSON",
            "payload": {},
            "error": {
              "statusCode": 400,
              "message": "Unexpected token '\"', \"\"{\\\"phone\\\":\"\" is not valid JSON",
              "error": "Bad Request"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate bad request",
              "passed": true,
              "message": "Malformed JSON rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_042",
          "caseName": "Send OTP should fail for empty request body",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.660Z",
          "endedAt": "2026-06-23T11:16:16.745Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2966",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate validation failure",
              "passed": true,
              "message": "Empty body rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_043",
          "caseName": "Send OTP should fail without Content-Type header",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.745Z",
          "endedAt": "2026-06-23T11:16:16.766Z",
          "durationMs": 21,
          "requestHeaders": {},
          "requestPayload": "{\"phone\":\"918668336629\"}",
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2965",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "18",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate request rejection",
              "passed": true,
              "message": "Missing Content-Type rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_044",
          "caseName": "Send OTP should fail with invalid Content-Type header",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.766Z",
          "endedAt": "2026-06-23T11:16:16.835Z",
          "durationMs": 69,
          "requestHeaders": {
            "Content-Type": "text/plain"
          },
          "requestPayload": "{\"phone\":\"918668336629\"}",
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2964",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "65",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: text/plain' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate unsupported or invalid media type",
              "passed": true,
              "message": "Invalid Content-Type rejected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_045",
          "caseName": "Verify success field in invalid-mobile error response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.835Z",
          "endedAt": "2026-06-23T11:16:16.845Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2963",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_046",
          "caseName": "Verify statusCode field in invalid-mobile error response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.845Z",
          "endedAt": "2026-06-23T11:16:16.931Z",
          "durationMs": 86,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2962",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_047",
          "caseName": "Verify error message in invalid-mobile error response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:16.931Z",
          "endedAt": "2026-06-23T11:16:17.126Z",
          "durationMs": 195,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:16 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2961",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "192",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response message should be \"Bad request\"",
              "passed": true,
              "message": "message=\"Bad request\""
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_048",
          "caseName": "Verify payload object in invalid-mobile error response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.126Z",
          "endedAt": "2026-06-23T11:16:17.246Z",
          "durationMs": 120,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2960",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "117",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Payload object should be present in error response",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_049",
          "caseName": "Verify error array exists in invalid-mobile error response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.246Z",
          "endedAt": "2026-06-23T11:16:17.338Z",
          "durationMs": 92,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2959",
            "x-ratelimit-reset": "13",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "87",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Error array should exist",
              "passed": true,
              "message": "error array present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_050",
          "caseName": "Verify FIXUSER1208 error code for invalid mobile",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.338Z",
          "endedAt": "2026-06-23T11:16:17.349Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2958",
            "x-ratelimit-reset": "12",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1208",
              "passed": true,
              "message": "FIXUSER1208 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_051",
          "caseName": "Verify invalid-mobile error code for invalid mobile",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.349Z",
          "endedAt": "2026-06-23T11:16:17.428Z",
          "durationMs": 79,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2957",
            "x-ratelimit-reset": "12",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "75",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1003 or FIXUSER1208",
              "passed": true,
              "message": "FIXUSER1003/FIXUSER1208 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_052",
          "caseName": "Verify nested error message is not null",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.428Z",
          "endedAt": "2026-06-23T11:16:17.436Z",
          "durationMs": 8,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2956",
            "x-ratelimit-reset": "12",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Error message should be populated",
              "passed": true,
              "message": "error message populated"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_053",
          "caseName": "Verify error schema structure for invalid mobile response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.436Z",
          "endedAt": "2026-06-23T11:16:17.446Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2955",
            "x-ratelimit-reset": "12",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Error response schema should match contract",
              "passed": true,
              "message": "Error schema valid"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_054",
          "caseName": "Verify multiple validation errors returned for invalid mobile",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:17.446Z",
          "endedAt": "2026-06-23T11:16:17.455Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:17 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2954",
            "x-ratelimit-reset": "12",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\"}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain one or more validation errors",
              "passed": true,
              "message": "error count=1"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_055",
          "caseName": "Verify duplicate registration request returns controlled response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:17.455Z",
          "endedAt": "2026-06-23T11:16:22.862Z",
          "durationMs": 5407,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:22 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2953",
            "x-ratelimit-reset": "12",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5404",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Duplicate request should return success or controlled guard response",
              "passed": true,
              "message": "Controlled duplicate-request response received (HTTP 201)"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_056",
          "caseName": "Verify OTP generated for unregistered mobile",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:22.862Z",
          "endedAt": "2026-06-23T11:16:24.972Z",
          "durationMs": 2110,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:24 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2952",
            "x-ratelimit-reset": "7",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2106",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Current shared test phone should receive an OTP generation response",
              "passed": true,
              "message": "OTP generation success envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_057",
          "caseName": "Verify OTP generated for registered mobile",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:24.972Z",
          "endedAt": "2026-06-23T11:16:25.074Z",
          "durationMs": 102,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:25 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2951",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "99",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_058",
          "caseName": "Verify OTP resend limit",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:25.074Z",
          "endedAt": "2026-06-23T11:16:25.478Z",
          "durationMs": 404,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:25 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2947",
            "x-ratelimit-reset": "4",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "105",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 4 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 4 requests succeeded with HTTP 200/201/400"
            },
            {
              "description": "Average response time across burst should stay under 5000ms",
              "passed": true,
              "message": "Average duration 101ms across 4 requests"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_059",
          "caseName": "Verify user blocked after maximum OTP attempts",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:25.478Z",
          "endedAt": "2026-06-23T11:16:26.012Z",
          "durationMs": 534,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2942",
            "x-ratelimit-reset": "4",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "106",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 5 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 5 requests succeeded with HTTP 200/201/400"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_060",
          "caseName": "Verify cooldown period after OTP limit reached",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.012Z",
          "endedAt": "2026-06-23T11:16:26.282Z",
          "durationMs": 270,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2939",
            "x-ratelimit-reset": "4",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "82",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 3 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 3 requests succeeded with HTTP 200/201/400"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_064",
          "caseName": "Verify HTTPS-only communication",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.282Z",
          "endedAt": "2026-06-23T11:16:26.395Z",
          "durationMs": 113,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2938",
            "x-ratelimit-reset": "4",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "109",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Configured service base URL should use HTTPS in non-local environments",
              "passed": true,
              "message": "Request completed through configured service URL; transport scheme is controlled by runtime service config"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_065",
          "caseName": "Verify sensitive data is not exposed in send OTP response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.395Z",
          "endedAt": "2026-06-23T11:16:26.502Z",
          "durationMs": 107,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2937",
            "x-ratelimit-reset": "3",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "103",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should not expose OTP or token data",
              "passed": true,
              "message": "No OTP/token leakage in response"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_066",
          "caseName": "Verify send OTP response header values",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.502Z",
          "endedAt": "2026-06-23T11:16:26.593Z",
          "durationMs": 91,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2936",
            "x-ratelimit-reset": "3",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "88",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Required response headers should be present",
              "passed": true,
              "message": "Required response headers present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_067",
          "caseName": "Verify send OTP API availability",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.593Z",
          "endedAt": "2026-06-23T11:16:26.691Z",
          "durationMs": 98,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2935",
            "x-ratelimit-reset": "3",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "96",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response time should be within 5000ms",
              "passed": true,
              "message": "duration=98ms"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_068",
          "caseName": "Verify mobile-number boundary value for valid length",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.691Z",
          "endedAt": "2026-06-23T11:16:26.822Z",
          "durationMs": 131,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2934",
            "x-ratelimit-reset": "3",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "128",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Configured valid phone should be 12 digits with 91 prefix",
              "passed": true,
              "message": "valid boundary phone=918668336629"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_069",
          "caseName": "Verify mobile-number boundary value for maximum valid length",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/register",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.822Z",
          "endedAt": "2026-06-23T11:16:26.926Z",
          "durationMs": 104,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "94",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:26 GMT",
            "etag": "W/\"5e-u9pgAiC6r/+M8iGDbF15OUTKebo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2933",
            "x-ratelimit-reset": "3",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "100",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "OTP sent successfully.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/register' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Configured valid phone should remain exactly 12 digits",
              "passed": true,
              "message": "max boundary phone=918668336629"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_002",
          "caseName": "Verify OTP and extract auth tokens (Unity / USFB)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:26.926Z",
          "endedAt": "2026-06-23T11:16:27.058Z",
          "durationMs": 132,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629",
            "otp": "123456",
            "partner_url": "https://tradingquants.dev.fixerra.in",
            "consent": false,
            "issuer_code": "UNITY"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1002",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"3ea-ZDSx8RiPcL28LT+UcQ0dw95VQCo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2997",
            "x-ratelimit-reset": "6",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "129",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "User already exists.",
            "payload": {
              "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0",
              "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJyZWZyZXNoIiwiZl91c2VyX2lkIjoiYmJiY2NiOTItYjg2OC00MGRiLTg0MDctNDkyNDk2MmU4ZTgxIiwiZl9wYXJ0bmVyX3VzZXJfaWQiOiI4ODBkMmFkMS0wMWZmLTRlNTAtYTEzNS05M2MxMjQyMGFmYzAiLCJmX3BhcnRuZXJfaWQiOiI2OGJkY2Y4OS04NDY0LTRmODUtODk4Ny1hYTI4OTA4ZTIxYWQiLCJwYXJ0bmVyX3VybCI6Imh0dHBzOi8vdHJhZGluZ3F1YW50cy5kZXYuZml4ZXJyYS5pbiIsImlhdCI6MTc4MjIxMzM4NywiZXhwIjoxNzgyODE4MTg3fQ.En2I7KinnhOcSZYmUK38jmu1LbbsLMj3S5nYVLLy_2M"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\",\"otp\":\"123456\",\"partner_url\":\"https://tradingquants.dev.fixerra.in\",\"consent\":false,\"issuer_code\":\"UNITY\"}'",
          "validations": [
            {
              "description": "Response status should be 200 OK or 201 Created",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should indicate login success",
              "passed": true,
              "message": "Success envelope present"
            },
            {
              "description": "Response should contain access token",
              "passed": true,
              "message": "accessToken present"
            },
            {
              "description": "Response should contain refresh token",
              "passed": true,
              "message": "refreshToken present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_009",
          "caseName": "Verify OTP should fail for wrong OTP value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:27.058Z",
          "endedAt": "2026-06-23T11:16:27.075Z",
          "durationMs": 17,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629",
            "otp": "000000",
            "partner_url": "https://tradingquants.dev.fixerra.in",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "96",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"60-hfBiNy6xWaduSHI0F+WME7SvnL8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2996",
            "x-ratelimit-reset": "6",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "14",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 403,
            "message": "OTP verification failed.",
            "payload": {
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\",\"otp\":\"000000\",\"partner_url\":\"https://tradingquants.dev.fixerra.in\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response HTTP status should be 201 Created",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response body statusCode should be 403 for OTP failure",
              "passed": true,
              "message": "body.statusCode=403 present"
            },
            {
              "description": "Response should indicate OTP verification failure",
              "passed": true,
              "message": "Error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_010",
          "caseName": "Verify OTP should fail when OTP is missing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.075Z",
          "endedAt": "2026-06-23T11:16:27.086Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "919876543210",
            "partner_url": "https://partner.example.com",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "295",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"127-cTEsrvO0GcCv4Fg2XlcWjrb7cKg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2995",
            "x-ratelimit-reset": "6",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1010",
                "error": "OTP must be 6 characters long,"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1009",
                "error": "OTP must be a numeric value,"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"919876543210\",\"partner_url\":\"https://partner.example.com\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate validation failure",
              "passed": true,
              "message": "Validation error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1010",
            "FIXUSER1009"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_011",
          "caseName": "Verify OTP should fail for non-numeric OTP",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.086Z",
          "endedAt": "2026-06-23T11:16:27.137Z",
          "durationMs": 51,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "919876543210",
            "otp": "ABCDEF",
            "partner_url": "https://partner.example.com",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "185",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"b9-mN40uxs9gfZuKrp6tgl4TLhROd8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2994",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "47",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1009",
                "error": "OTP must be a numeric value,"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"919876543210\",\"otp\":\"ABCDEF\",\"partner_url\":\"https://partner.example.com\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1009",
              "passed": true,
              "message": "FIXUSER1009 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [
            "FIXUSER1009"
          ],
          "actualErrorCodes": [
            "FIXUSER1009"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_012",
          "caseName": "Verify OTP should fail for 5-digit OTP",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.137Z",
          "endedAt": "2026-06-23T11:16:27.148Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "919876543210",
            "otp": "12345",
            "partner_url": "https://partner.example.com",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "187",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"bb-/V7uRMXgpDZS/f6s/2qoS8g/w0I\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2993",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1010",
                "error": "OTP must be 6 characters long,"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"919876543210\",\"otp\":\"12345\",\"partner_url\":\"https://partner.example.com\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1010",
              "passed": true,
              "message": "FIXUSER1010 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [
            "FIXUSER1010"
          ],
          "actualErrorCodes": [
            "FIXUSER1010"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_013",
          "caseName": "Verify OTP should fail for 7-digit OTP",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.148Z",
          "endedAt": "2026-06-23T11:16:27.232Z",
          "durationMs": 84,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "919876543210",
            "otp": "1234567",
            "partner_url": "https://partner.example.com",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "187",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"bb-/V7uRMXgpDZS/f6s/2qoS8g/w0I\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2992",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "81",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1010",
                "error": "OTP must be 6 characters long,"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"919876543210\",\"otp\":\"1234567\",\"partner_url\":\"https://partner.example.com\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1010",
              "passed": true,
              "message": "FIXUSER1010 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [
            "FIXUSER1010"
          ],
          "actualErrorCodes": [
            "FIXUSER1010"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_014",
          "caseName": "Verify OTP should fail when phone is missing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.233Z",
          "endedAt": "2026-06-23T11:16:27.440Z",
          "durationMs": 207,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "otp": "123456",
            "partner_url": "https://partner.example.com",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2991",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "204",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"otp\":\"123456\",\"partner_url\":\"https://partner.example.com\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response body should be Bad Request envelope",
              "passed": true,
              "message": "Bad Request envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_LOGIN_015",
          "caseName": "Verify OTP should fail for invalid phone format",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.441Z",
          "endedAt": "2026-06-23T11:16:27.547Z",
          "durationMs": 106,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "9876543210",
            "otp": "123456",
            "partner_url": "https://partner.example.com",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"d2-feFZaS8+X3jZ9MGovDAtYeX921U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2990",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "103",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1208",
                "error": "Please enter a valid mobile number (Ex. 918898989887)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"9876543210\",\"otp\":\"123456\",\"partner_url\":\"https://partner.example.com\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain invalid-phone error code",
              "passed": true,
              "message": "Invalid-phone code present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [
            "FIXUSER1003",
            "FIXUSER1208"
          ],
          "actualErrorCodes": [
            "FIXUSER1208"
          ]
        },
        {
          "caseId": "UNITY_LOGIN_016",
          "caseName": "Verify OTP should fail for unknown partner URL",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/auth/api/v2/register/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:27.547Z",
          "endedAt": "2026-06-23T11:16:27.749Z",
          "durationMs": 202,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "phone": "918668336629",
            "otp": "123456",
            "partner_url": "https://unknown.invalid",
            "consent": false
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "187",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"bb-5jureKlmL3WjRkBq8FblwYNw8fQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-ratelimit-limit": "3000",
            "x-ratelimit-remaining": "2989",
            "x-ratelimit-reset": "5",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "199",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": " ",
                "f_error_message": " ",
                "errorCode": "FIXUSER1085",
                "error": "partner public key not found"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/auth/api/v2/register/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phone\":\"918668336629\",\"otp\":\"123456\",\"partner_url\":\"https://unknown.invalid\",\"consent\":false}'",
          "validations": [
            {
              "description": "Response status should be 400 Bad Request",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain FIXUSER1085",
              "passed": true,
              "message": "FIXUSER1085 present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_AUTH_VERIFY_OTP.md",
          "expectedErrorCodes": [
            "FIXUSER1085"
          ],
          "actualErrorCodes": [
            "FIXUSER1085"
          ]
        }
      ],
      "summary": {
        "total": 66,
        "passed": 61,
        "failed": 5,
        "skipped": 0,
        "running": 0,
        "pending": 0,
        "durationMs": 49819
      }
    },
    {
      "stepId": "unity-step-02-fd-detail",
      "stepName": "FD Detail",
      "cases": [
        {
          "caseId": "UNITY_FD_001",
          "caseName": "[Happy] Get Unity issuer detail - valid issuer ID",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:27.749Z",
          "endedAt": "2026-06-23T11:16:27.833Z",
          "durationMs": 84,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "80078",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:27 GMT",
            "etag": "W/\"138ce-1zzJotfnX3nUsBx7RLaJVc3uXiY\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "42",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "issuerData": {
                "id": 30,
                "name": "Unity Small Finance Bank",
                "description": "Founded in 2021, Unity is a new-age bank launched in collaboration between Centrum Financial Services and BharatPe. With over ₹10K Crores in deposits & ₹8.5K Crores in advances, the bank is present in ~400 locations Pan India & serves 18L+ customers.",
                "f_code": "USFB",
                "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                "url": "https://images.dev.fixerra.in/logos/unity/Unity@2x.png",
                "sub_logo": "https://images.dev.fixerra.in/logos/unity/Unity_sublogo.png",
                "compounding_freq": "Quarterly",
                "issuer_type": "SMALL FINANCE BANK",
                "crisil_rating": "A1+",
                "icra_rating": "A(Stable)",
                "trusted_users": "23.8 lakh as per 2024",
                "hero_tag": "Instant FD Booking",
                "subtag_1": "NO LOCK IN",
                "subtag_2": "Compounds Quarterly",
                "is_range_required": true,
                "bank_disabled_at": null,
                "faq": null,
                "active_issuer_rank": 1,
                "baseline_issuer_rank": null,
                "deleted_at": null,
                "upcoming_bank": false,
                "upcoming_bank_date": null,
                "utm_url": null,
                "renewal_options": {
                  "Principal": false,
                  "No Renewal": true,
                  "Total Amount": true
                },
                "enable_our_pg": true,
                "enable_easy_split": true,
                "pg_setting": "249a22814bf213a7ff2e68cfa58da9d3:91a546362694f990dbe9d3e4445e84522f59d9874571ae2cb219ffead0ecad96a6bf6a10e368888b9cd43eb1f73c9ebe209ddff23557b6d6f5c2e270c67826c52ca9c20e7e23882333a6f23f6c80186251515fc0c8b67b0d0fa23489b0b36707867920328009a1890d8b05202329cda47d5a1f0c395de7cec81f00f1590e9c8674b05825f879f0f16e145438a075c727",
                "is_nominee_required": true,
                "bank_type": "SMALL FINANCE",
                "is_issuer_live": true,
                "women_benefit": 0,
                "senior_citizen_benefit": 0.5,
                "minTenure": 7,
                "maxTenure": 3650
              },
              "vehiclesPayload": [
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "78be9da4-97c7-4880-98f6-b3ebbdc5ca9c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "bc1fe59d-9dfb-4a23-9bd1-c688e2fa089a",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "82c46b56-95aa-4e4c-8bd5-2a227d43e038",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": 8,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.98"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "90063de6-0764-426d-99ee-bd0cb68613ab",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": 1,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.45"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.21"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "af138a6a-6523-4b65-8588-c8c68337c200",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "778e9132-6f0a-462f-aef9-54fcbfe3419c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "53f92e75-7779-494b-8261-e749470e23d8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "598da921-79de-4b29-b176-e6c1a03a8329",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.59"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "4147cd33-6393-4e4c-bde0-f81b21e3c616",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3eaf7915-7454-4da4-b340-65485dd3dc8b",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "460f74f1-5354-4e4d-b207-c200476dcf7c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.59"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "517f8e03-dea2-4e3b-8cf2-f117931e37f8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.22"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "487f5f0a-d825-4484-964d-4edb55d90c09",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.22"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "1f20d999-ea5e-4600-9576-cb39bef8139f",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.58"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "d4876ecd-f52b-415b-840b-4243d9cd7e77",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "d70139a1-25d7-42e9-b45e-3515176625df",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "8e6adda7-c272-4e1e-b4da-848e718c39c1",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "441dc1b6-9bd2-477c-b105-e203f9f92ec0",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e9f1ff1a-8dee-42e3-8412-63ae66eebeed",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "191f5d78-9bc9-43b7-a605-db52f61b09bf",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "89af3dd7-743b-4bbf-8253-473142500fbd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a5cbfe38-073f-4b70-9a21-9525370a07cf",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a18ce372-9c11-4b98-9259-1aead10c9688",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.94"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3bbca9c5-e247-4ede-acb3-f1835a5bce8d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.97"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "253d32c1-069c-4230-bf88-2c75b19dc738",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "85f23850-585d-41d6-ac53-4b87cd486952",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "52fc1a25-fc83-4825-80aa-f098583680cd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "7.26"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "972c889e-9562-411e-baaf-10f5dadd4d87",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "7.26"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "6bdfac92-0b91-40aa-8d10-a044cbcb5aae",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "8.02"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "eef453a1-a234-48b7-9b9c-4de0ea6b9c27",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.36"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "795c6e94-b8b9-4353-810a-7e44b7c055a2",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.36"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "46e53b7c-d55f-4f1a-bbfd-816c6b394b3c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.82"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "183b2c6e-92d8-4dfa-ae62-bc383ad59ec2",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "6a5fcd29-3674-4c70-90e1-138cb9318797",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "7ac0b47b-4db4-45c4-8a7d-76bb67b2b297",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "7.19"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "d9e5100b-f18a-4c8c-aa8c-50156866e7b6",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "9e6b5e98-2c2b-4501-b17a-a09f0f39c0d5",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "faa70766-3f83-4917-ac30-0f52b98487ff",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "7.19"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "61969f2a-1eca-4c99-bc86-c0deae0618d2",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e92e3e10-6c0b-4ab6-bdb7-7787570424e4",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e48b99ab-5f52-4135-90a8-a7123b7fc0f5",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.83"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a7969a60-9180-46a0-8f80-999055e6a528",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3ea5c2f3-7334-4032-99d5-554ce070332a",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "614c7dd2-7887-40d3-a589-9518c87d6217",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.88"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "94a5341e-9b38-49af-a44d-c290649c3f61",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "6.73"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "ac837285-0d9e-44b7-9267-5903ed8e8a56",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "02401d69-6903-4b51-9b75-a68bb63ff410",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.05"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "fbd2be52-74a1-4cd2-aebc-1073e88702dd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "6.73"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "c8c0816c-7a36-4d61-bbf4-f1433c42f320",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "c0e9b2fc-13ad-48be-a4f9-c38aa0cb5a99",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.05"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "9f5b5c31-e96d-4946-915a-d14fad4fee8b",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "16453b06-d39c-4531-a704-fa4a7e3030a8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "6.73"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "6a87b038-d18e-43c6-a697-1636b1b77980",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.03"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "c783c123-29fc-4eb5-b218-5707415ab0e8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "6.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "197abcea-0469-4872-bda3-66c02874fac7",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0d5bde14-88e1-4fd1-8023-fc925e60d3bc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.15"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "883e385a-49d6-4d8a-b6a7-ca2bd8d78602",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "6.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e1d8af70-aa88-4883-847b-056b27a1a6ef",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a4dbec8b-ef07-4e1e-b324-2ec5192728ae",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.15"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "ef43280e-e4bf-4410-878e-6e777ebd2cbc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "b3ac88c9-d18c-4fcc-941b-02602d74d80e",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "73958c50-31b9-4962-9817-44a0f6e7d16a",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.35"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e6d36ae3-89f3-440f-a1ba-72d322fc5f69",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.37"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "545cc92f-d709-464e-a4b8-5ff4cc3cc9d0",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "b82848be-ee69-41ef-8c4b-6b079f9177ff",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "fae3c862-2cbe-40cd-b39a-e1005908b0c9",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "7.41"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "40fd2d9c-31f6-4a7c-ad7d-52cf527493ed",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "081c1bc2-aae2-4b5a-8a7f-aa62022804b3",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "6.76"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "750677f4-0d24-48e0-abf5-085b95c53cd6",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.45"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "430c2d48-9710-4f3e-b2e4-c01157cb534d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.03"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "76f1283d-d307-462b-87a7-d465078f4b65",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.06"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3e406422-a6a7-4837-a0f4-b6845059ab93",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "6.47"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3043c302-a514-4246-9178-7f263bb72194",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "921af6b9-b12a-4f5b-975d-3b0a961284dd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "6.66"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "703955f3-fb45-4a9a-9362-90e3f73f38c9",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "6.46"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e540bf4b-f66a-400b-9ec9-5df7286e6c5d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "77279014-798a-4216-ade2-69489c55dd52",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "6.66"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a08540ba-67bd-40a3-a0f7-cbe9914e37c9",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0793de3d-55fb-42d6-aec7-8308490368f3",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0d477591-af22-4ccd-aef0-e1001ad0e8c7",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "9.06"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "9f5eb97a-3520-432e-87b0-a6961aec4a69",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.23"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "5beb6f6a-501a-4995-b523-c948beaa0c79",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.21"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "700004fa-30a4-4b00-a9c3-51bf6c78fb26",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.32"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e8dec518-823e-4ef1-88f9-4c182c2d7662",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.26"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "7cb6db66-1e25-4cbb-a9b1-a80e95f01cfc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "944b5eb4-ac31-496c-94df-e323cf163133",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.36"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "843c4b9f-f562-4e33-b0b5-e3d8aa9d4878",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 165,
                  "product_max_tenure": 182,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "165 days",
                  "is_visible": true,
                  "yield": "6.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "ed08e524-1f61-4295-87d9-a2a46c2dba9e",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "5.97"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3d170381-8fa3-4a6b-9969-881aac1f4c12",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "6.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "150f9ee7-8e90-4b12-a04c-41f460634fdd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "8.14"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e65f08fb-2abe-41d6-8167-c907daf58cf7",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 61,
                  "product_max_tenure": 90,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "61 days",
                  "is_visible": true,
                  "yield": "5.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "2928bbfe-713d-42b0-a3ec-c5e3dddfd810",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 91,
                  "product_max_tenure": 164,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "91 days",
                  "is_visible": true,
                  "yield": "5.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "41b65daf-c19a-44a6-ad8d-774ed28cb978",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 165,
                  "product_max_tenure": 182,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "165 days",
                  "is_visible": true,
                  "yield": "5.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "42e7f3e4-0a9f-426c-9533-61059e4a7a74",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 46,
                  "product_max_tenure": 60,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "46 days",
                  "is_visible": true,
                  "yield": "5.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "66e977d1-39e6-44b4-a505-a75886f9c5bc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 61,
                  "product_max_tenure": 90,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "61 days",
                  "is_visible": true,
                  "yield": "5.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "85eb3051-09b2-4e4e-9534-607555548624",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 91,
                  "product_max_tenure": 164,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "91 days",
                  "is_visible": true,
                  "yield": "5.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a8550210-195b-4855-ae78-e9a3e6431d11",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 46,
                  "product_max_tenure": 60,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "46 days",
                  "is_visible": true,
                  "yield": "4.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 7,
                  "product_max_tenure": 14,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "7 days",
                  "is_visible": true,
                  "yield": "4.01"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "1f8739ff-a32f-4095-9bca-5b579eca56a4",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 7,
                  "product_max_tenure": 14,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "7 days",
                  "is_visible": true,
                  "yield": "4.01"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "53ee2eb6-b836-43ee-91a6-94821e40f97c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 15,
                  "product_max_tenure": 45,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "15 days",
                  "is_visible": true,
                  "yield": "4.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "68371cb3-8fe9-472d-bd85-ce5f65372a99",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 15,
                  "product_max_tenure": 45,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "15 days",
                  "is_visible": true,
                  "yield": "4.00"
                }
              ],
              "highlights": [
                {
                  "title": "All investments up to ₹5L are insured by DICGC ",
                  "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                },
                {
                  "title": "Zero Balance Savings A/c opened with interest up to 7.75% pa",
                  "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                },
                {
                  "title": "Senior Citizens get up to 0.50% extra",
                  "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                }
              ],
              "about": [
                {
                  "key": "Founded",
                  "value": "2021"
                },
                {
                  "key": "Customers Served",
                  "value": "28 lakh+"
                },
                {
                  "key": "Number of Branches",
                  "value": "400+"
                },
                {
                  "key": "CRISIL Rating",
                  "value": "A1+"
                },
                {
                  "key": "Assets Under Management",
                  "value": "₹10,000 Cr+"
                }
              ],
              "distinctMinTenureValues": [
                {
                  "value": 1035
                },
                {
                  "value": 1096
                },
                {
                  "value": 15
                },
                {
                  "value": 165
                },
                {
                  "value": 1825
                },
                {
                  "value": 183
                },
                {
                  "value": 202
                },
                {
                  "value": 365
                },
                {
                  "value": 3650
                },
                {
                  "value": 366
                },
                {
                  "value": 367
                },
                {
                  "value": 46
                },
                {
                  "value": 501
                },
                {
                  "value": 502
                },
                {
                  "value": 548
                },
                {
                  "value": 61
                },
                {
                  "value": 7
                },
                {
                  "value": 701
                },
                {
                  "value": 702
                },
                {
                  "value": 91
                },
                {
                  "value": 999
                }
              ],
              "interestPayouts": [
                "Monthly",
                "Quarterly",
                "Maturity"
              ]
            }
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b?product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Status 200",
              "passed": true,
              "message": "Expected 200, got 200"
            },
            {
              "description": "Response should contain issuer data (payload.issuerData)",
              "passed": true,
              "message": "Issuer data present (f_code=USFB, f_issuer_id=1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_FD_002",
          "caseName": "[Happy] Get Unity maturity quote and capture investment vehicle id",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:27.833Z",
          "endedAt": "2026-06-23T11:16:28.086Z",
          "durationMs": 253,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "450",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1c2-Y2e9VNdQ7tztuKzCEKkntO/Kn+w\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "251",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Maturity",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "90063de6-0764-426d-99ee-bd0cb68613ab",
            "average_yield": "7.45",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-06-23",
                    "amount": 10745
                  }
                ]
              }
            ],
            "maturity_amount": 10745
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Status 200",
              "passed": true,
              "message": "Expected 200, got 200"
            },
            {
              "description": "Maturity quote should include f_investment_vehicle_id",
              "passed": true,
              "message": "Vehicle id present (90063de6-0764-426d-99ee-bd0cb68613ab)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_AUTH_001",
          "caseName": "USFB maturity should reject missing auth",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:28.086Z",
          "endedAt": "2026-06-23T11:16:28.091Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "79",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"4f-e9FJ4UDsD4YIbJ0B0XBRK2nO4MQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "statusCode": 401,
            "message": "x-partner-key is required",
            "error": "Unauthorized"
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "HTTP status should be 401",
              "passed": true,
              "message": "HTTP 401"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_FREQ001",
          "caseName": "USFB Maturity payout success",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.091Z",
          "endedAt": "2026-06-23T11:16:28.224Z",
          "durationMs": 133,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "450",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1c2-Y2e9VNdQ7tztuKzCEKkntO/Kn+w\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "130",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Maturity",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "90063de6-0764-426d-99ee-bd0cb68613ab",
            "average_yield": "7.45",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-06-23",
                    "amount": 10745
                  }
                ]
              }
            ],
            "maturity_amount": 10745
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be success payload with maturity fields",
              "passed": true,
              "message": "Success schema valid"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_FREQ002",
          "caseName": "USFB Monthly payout success",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.224Z",
          "endedAt": "2026-06-23T11:16:28.395Z",
          "durationMs": 171,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "929",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"3a1-mExs5PPzJznl6LKg9SXph6ZpXt4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "168",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
            "average_yield": "7.21",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.83
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 60.12
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 46.3
                  }
                ]
              }
            ],
            "payout_amount": 60,
            "total_payout": 721
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be success payload with maturity fields",
              "passed": true,
              "message": "Success schema valid"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_FREQ003",
          "caseName": "USFB Quarterly payout success",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.395Z",
          "endedAt": "2026-06-23T11:16:28.486Z",
          "durationMs": 91,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Quarterly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "640",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"280-wJ9tYIA8L5fBEIwjaJiiTj/+Ssc\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "88",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Quarterly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "af138a6a-6523-4b65-8588-c8c68337c200",
            "average_yield": "7.25",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.9
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 181.37
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 181.37
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-03-31",
                    "amount": 181.37
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 167.47
                  }
                ]
              }
            ],
            "payout_amount": 181,
            "total_payout": 725
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Quarterly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be success payload with maturity fields",
              "passed": true,
              "message": "Success schema valid"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_FREQ004",
          "caseName": "USFB HalfYearly payout should fail FIXMAS005",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.487Z",
          "endedAt": "2026-06-23T11:16:28.498Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "HalfYearly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=HalfYearly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be Fixerra error with FIXMAS005",
              "passed": true,
              "message": "FIXMAS005 present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "USFB_MAT_FREQ005",
          "caseName": "USFB Yearly payout should fail FIXMAS005",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.498Z",
          "endedAt": "2026-06-23T11:16:28.507Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Yearly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Yearly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be Fixerra error with FIXMAS005",
              "passed": true,
              "message": "FIXMAS005 present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "USFB_MAT_BOUND_001",
          "caseName": "USFB min amount boundary success",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.507Z",
          "endedAt": "2026-06-23T11:16:28.589Z",
          "durationMs": 82,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "78",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be success payload with maturity fields",
              "passed": true,
              "message": "Success schema valid"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_BOUND_002",
          "caseName": "USFB max amount boundary success",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.589Z",
          "endedAt": "2026-06-23T11:16:28.674Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "1825",
            "investment_amount": "29999999",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "467",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1d3-Cruljx9cYS25vFWkHFPh1xQI+iQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 6.75,
            "payout_frequency": "Maturity",
            "maturity_date": "2031-06-22",
            "maturity_date_ist": "2031-06-22",
            "f_investment_vehicle_id": "fae3c862-2cbe-40cd-b39a-e1005908b0c9",
            "average_yield": "7.41",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 1096,
            "product_max_tenure": 1825,
            "product_min_tenure_label": "36 months 1 day",
            "payout": [
              {
                "year": 2031,
                "data": [
                  {
                    "date": "2031-06-22",
                    "amount": 36678570
                  }
                ]
              }
            ],
            "maturity_amount": 36678570
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=1825&investment_amount=29999999&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be success payload with maturity fields",
              "passed": true,
              "message": "Success schema valid"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_BOUND_003",
          "caseName": "USFB amount below min should fail",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.674Z",
          "endedAt": "2026-06-23T11:16:28.684Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "214",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"d6-01ft2Fyu7FRTRYdxlqCDAqs14Lw\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS092",
                "error": "The entered Investment Amount is not accepted by the issuer"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be Fixerra error with FIXMAS092",
              "passed": true,
              "message": "FIXMAS092 present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS092"
          ]
        },
        {
          "caseId": "USFB_MAT_BOUND_004",
          "caseName": "USFB tenure below min should fail",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.684Z",
          "endedAt": "2026-06-23T11:16:28.693Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "6",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=6&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be Fixerra error with FIXMAS005",
              "passed": true,
              "message": "FIXMAS005 present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "USFB_MAT_WOMEN_001",
          "caseName": "USFB women_citizen=true should fail",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.693Z",
          "endedAt": "2026-06-23T11:16:28.702Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "true",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=true&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be Fixerra error with FIXMAS005",
              "passed": true,
              "message": "FIXMAS005 present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "USFB_MAT_005",
          "caseName": "Verify product_interest field is populated",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.702Z",
          "endedAt": "2026-06-23T11:16:28.815Z",
          "durationMs": 113,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "110",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.product_interest should be a numeric value or numeric string",
              "passed": true,
              "message": "product_interest=4"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_006",
          "caseName": "Verify average_yield field is populated",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.815Z",
          "endedAt": "2026-06-23T11:16:28.902Z",
          "durationMs": 87,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "84",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.average_yield should be a non-empty numeric string",
              "passed": true,
              "message": "average_yield=\"4.01\""
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_007",
          "caseName": "Verify maturity_date field is returned",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.902Z",
          "endedAt": "2026-06-23T11:16:28.981Z",
          "durationMs": 79,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:28 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "76",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.maturity_date should be a YYYY-MM-DD date string",
              "passed": true,
              "message": "maturity_date=\"2026-06-30\""
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_008",
          "caseName": "Verify f_investment_vehicle_id field is returned",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:28.981Z",
          "endedAt": "2026-06-23T11:16:29.067Z",
          "durationMs": 86,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.f_investment_vehicle_id should be a non-empty string",
              "passed": true,
              "message": "f_investment_vehicle_id=\"eb4b1ff8-3eb9-4622-bf17-78b04913877d\""
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_009",
          "caseName": "Verify minimum investment amount returned (1000)",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.068Z",
          "endedAt": "2026-06-23T11:16:29.168Z",
          "durationMs": 100,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "97",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.product_min_investment should equal 1000",
              "passed": true,
              "message": "product_min_investment=1000"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_010",
          "caseName": "Verify maximum investment amount returned (29999999)",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.168Z",
          "endedAt": "2026-06-23T11:16:29.241Z",
          "durationMs": 73,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "29999999",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "450",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1c2-Z1XH5NX7MbuhuceKPbDDWsQuW6s\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "70",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 30023013
                  }
                ]
              }
            ],
            "maturity_amount": 30023013
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=29999999&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.product_max_investment should equal 29999999",
              "passed": true,
              "message": "product_max_investment=29999999"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_041",
          "caseName": "Verify maturity amount greater than principal in cumulative FD",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.241Z",
          "endedAt": "2026-06-23T11:16:29.316Z",
          "durationMs": 75,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "72",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.maturity_amount should be greater than the invested principal",
              "passed": true,
              "message": "maturity_amount=1001 > principal=1000"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_044",
          "caseName": "Verify payout data is grouped by year",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.316Z",
          "endedAt": "2026-06-23T11:16:29.403Z",
          "durationMs": 87,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "929",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"3a1-mExs5PPzJznl6LKg9SXph6ZpXt4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "84",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
            "average_yield": "7.21",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.83
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 60.12
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 46.3
                  }
                ]
              }
            ],
            "payout_amount": 60,
            "total_payout": 721
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.payout should be an array of {year, data[]} groups",
              "passed": true,
              "message": "payout has 2 year group(s)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_045",
          "caseName": "Verify payout dates are in ascending order",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.403Z",
          "endedAt": "2026-06-23T11:16:29.505Z",
          "durationMs": 102,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "929",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"3a1-mExs5PPzJznl6LKg9SXph6ZpXt4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "99",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
            "average_yield": "7.21",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.83
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 60.12
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 46.3
                  }
                ]
              }
            ],
            "payout_amount": 60,
            "total_payout": 721
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payout dates should be sorted in ascending order",
              "passed": true,
              "message": "13 payout date(s) in ascending order"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_053",
          "caseName": "Verify invalid payout_frequency value is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.505Z",
          "endedAt": "2026-06-23T11:16:29.510Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Weekly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "218",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"da-GsGPQpwhN6hvx2akpkhgtc/Orb8\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS071",
                "error": "Invalid payout_frequency. Please enter a valid payout_frequency"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Weekly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be a Fixerra error envelope with FIXMAS071",
              "passed": true,
              "message": "Error envelope present (FIXMAS071)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS071"
          ]
        },
        {
          "caseId": "USFB_MAT_059",
          "caseName": "Verify missing auth token is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:29.510Z",
          "endedAt": "2026-06-23T11:16:29.535Z",
          "durationMs": 25,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "79",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"4f-e9FJ4UDsD4YIbJ0B0XBRK2nO4MQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "statusCode": 401,
            "message": "x-partner-key is required",
            "error": "Unauthorized"
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should reject with a 401 (no 5xx)",
              "passed": true,
              "message": "Rejected as expected (HTTP 401)"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 401, no internal details leaked"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_063",
          "caseName": "Verify malformed Bearer token is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.535Z",
          "endedAt": "2026-06-23T11:16:29.654Z",
          "durationMs": 119,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer not-a-jwt"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "110",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer not-a-jwt'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200, no internal details leaked"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_064",
          "caseName": "Verify response content type is application/json",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.654Z",
          "endedAt": "2026-06-23T11:16:29.744Z",
          "durationMs": 90,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "88",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Response content type should be application/json",
              "passed": true,
              "message": "application/json response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_066",
          "caseName": "Verify response time is within SLA (<2s)",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.744Z",
          "endedAt": "2026-06-23T11:16:29.833Z",
          "durationMs": 89,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "86",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Response should complete within 2000ms",
              "passed": true,
              "message": "duration=89ms"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_069",
          "caseName": "Verify SQL injection payload in investment_amount is safely ignored (leading numeric value parsed, no injection)",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.833Z",
          "endedAt": "2026-06-23T11:16:29.940Z",
          "durationMs": 107,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000' OR '1'='1",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "104",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000%27+OR+%271%27%3D%271&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200, no internal details leaked"
            },
            {
              "description": "payload.maturity_amount should be a positive number (leading numeric value parsed)",
              "passed": true,
              "message": "maturity_amount=1001"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_070",
          "caseName": "Verify SQL injection payload in tenure is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.940Z",
          "endedAt": "2026-06-23T11:16:29.945Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7' OR '1'='1",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"c6-lkpf0VVnOHYlWmFGhvoeDBviVY8\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS067",
                "error": "Invalid tenure. Please enter a valid tenure"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7%27+OR+%271%27%3D%271&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be a Fixerra error envelope (statusCode=400, success=0)",
              "passed": true,
              "message": "Error envelope present"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200, no internal details leaked"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS067"
          ]
        },
        {
          "caseId": "USFB_MAT_071",
          "caseName": "Verify XSS payload in payout_frequency is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.945Z",
          "endedAt": "2026-06-23T11:16:29.949Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "<script>alert(1)</script>",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "218",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"da-GsGPQpwhN6hvx2akpkhgtc/Orb8\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS071",
                "error": "Invalid payout_frequency. Please enter a valid payout_frequency"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=%3Cscript%3Ealert%281%29%3C%2Fscript%3E&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be a Fixerra error envelope with FIXMAS071",
              "passed": true,
              "message": "Error envelope present (FIXMAS071)"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200, no internal details leaked"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS071"
          ]
        },
        {
          "caseId": "USFB_MAT_072",
          "caseName": "Verify HTML injection payload in payout_frequency is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.949Z",
          "endedAt": "2026-06-23T11:16:29.953Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "<b>Maturity</b>",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "218",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"da-GsGPQpwhN6hvx2akpkhgtc/Orb8\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS071",
                "error": "Invalid payout_frequency. Please enter a valid payout_frequency"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=%3Cb%3EMaturity%3C%2Fb%3E&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be a Fixerra error envelope with FIXMAS071",
              "passed": true,
              "message": "Error envelope present (FIXMAS071)"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200, no internal details leaked"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS071"
          ]
        },
        {
          "caseId": "USFB_MAT_073",
          "caseName": "Verify tampered/unsupported product_type is rejected",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.953Z",
          "endedAt": "2026-06-23T11:16:29.988Z",
          "durationMs": 35,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD' OR '1'='1"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "206",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:29 GMT",
            "etag": "W/\"ce-kpE6H4BBNmqZLTyXPl9iXasRADM\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "32",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS107",
                "error": "The product type must be one of the allowed values."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD%27+OR+%271%27%3D%271' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "Body should be a Fixerra error envelope (statusCode=400, success=0)",
              "passed": true,
              "message": "Error envelope present"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200, no internal details leaked"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXMAS107"
          ]
        },
        {
          "caseId": "USFB_MAT_077",
          "caseName": "Verify rate limiting on maturity endpoint",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:29.988Z",
          "endedAt": "2026-06-23T11:16:30.819Z",
          "durationMs": 831,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "453",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:30 GMT",
            "etag": "W/\"1c5-YwEaRxiuxM85O25BF4okLufcCIg\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "30",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": "4.00",
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1000.76
                  }
                ]
              }
            ],
            "maturity_amount": 1000.76
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 15 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 15 requests succeeded with HTTP 200"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_080",
          "caseName": "Verify maturity_date format is YYYY-MM-DD",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:30.819Z",
          "endedAt": "2026-06-23T11:16:30.904Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:30 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "82",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.maturity_date should match YYYY-MM-DD",
              "passed": true,
              "message": "maturity_date=\"2026-06-30\""
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_081",
          "caseName": "Verify payout date format is YYYY-MM-DD",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:30.904Z",
          "endedAt": "2026-06-23T11:16:31.003Z",
          "durationMs": 99,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "929",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"3a1-mExs5PPzJznl6LKg9SXph6ZpXt4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "96",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
            "average_yield": "7.21",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.83
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 60.12
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 46.3
                  }
                ]
              }
            ],
            "payout_amount": 60,
            "total_payout": 721
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "every payout[].data[].date should match YYYY-MM-DD",
              "passed": true,
              "message": "13 payout date(s) valid"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_085",
          "caseName": "Verify product_min_tenure equals 7",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.004Z",
          "endedAt": "2026-06-23T11:16:31.163Z",
          "durationMs": 159,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "156",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.product_min_tenure should equal 7",
              "passed": true,
              "message": "product_min_tenure=7"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "USFB_MAT_086",
          "caseName": "Verify product_max_tenure is a valid bound (>= product_min_tenure) for the matched product",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.163Z",
          "endedAt": "2026-06-23T11:16:31.379Z",
          "durationMs": 216,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false",
            "product_type": "FD"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "213",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "HTTP 200"
            },
            {
              "description": "payload.product_max_tenure should be >= product_min_tenure and > 0",
              "passed": true,
              "message": "product_min_tenure=7, product_max_tenure=14"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_DETAIL_ISSUER_TC_001_Get_Detail_Success_Default_0",
          "caseName": "[POSITIVE] TC_001_Get_Detail_Success_Default",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.379Z",
          "endedAt": "2026-06-23T11:16:31.426Z",
          "durationMs": 47,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "80078",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"138ce-1zzJotfnX3nUsBx7RLaJVc3uXiY\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "41",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "issuerData": {
                "id": 30,
                "name": "Unity Small Finance Bank",
                "description": "Founded in 2021, Unity is a new-age bank launched in collaboration between Centrum Financial Services and BharatPe. With over ₹10K Crores in deposits & ₹8.5K Crores in advances, the bank is present in ~400 locations Pan India & serves 18L+ customers.",
                "f_code": "USFB",
                "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                "url": "https://images.dev.fixerra.in/logos/unity/Unity@2x.png",
                "sub_logo": "https://images.dev.fixerra.in/logos/unity/Unity_sublogo.png",
                "compounding_freq": "Quarterly",
                "issuer_type": "SMALL FINANCE BANK",
                "crisil_rating": "A1+",
                "icra_rating": "A(Stable)",
                "trusted_users": "23.8 lakh as per 2024",
                "hero_tag": "Instant FD Booking",
                "subtag_1": "NO LOCK IN",
                "subtag_2": "Compounds Quarterly",
                "is_range_required": true,
                "bank_disabled_at": null,
                "faq": null,
                "active_issuer_rank": 1,
                "baseline_issuer_rank": null,
                "deleted_at": null,
                "upcoming_bank": false,
                "upcoming_bank_date": null,
                "utm_url": null,
                "renewal_options": {
                  "Principal": false,
                  "No Renewal": true,
                  "Total Amount": true
                },
                "enable_our_pg": true,
                "enable_easy_split": true,
                "pg_setting": "249a22814bf213a7ff2e68cfa58da9d3:91a546362694f990dbe9d3e4445e84522f59d9874571ae2cb219ffead0ecad96a6bf6a10e368888b9cd43eb1f73c9ebe209ddff23557b6d6f5c2e270c67826c52ca9c20e7e23882333a6f23f6c80186251515fc0c8b67b0d0fa23489b0b36707867920328009a1890d8b05202329cda47d5a1f0c395de7cec81f00f1590e9c8674b05825f879f0f16e145438a075c727",
                "is_nominee_required": true,
                "bank_type": "SMALL FINANCE",
                "is_issuer_live": true,
                "women_benefit": 0,
                "senior_citizen_benefit": 0.5,
                "minTenure": 7,
                "maxTenure": 3650
              },
              "vehiclesPayload": [
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "78be9da4-97c7-4880-98f6-b3ebbdc5ca9c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "bc1fe59d-9dfb-4a23-9bd1-c688e2fa089a",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "82c46b56-95aa-4e4c-8bd5-2a227d43e038",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": 8,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.98"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "90063de6-0764-426d-99ee-bd0cb68613ab",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": 1,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.45"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.21"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "af138a6a-6523-4b65-8588-c8c68337c200",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "778e9132-6f0a-462f-aef9-54fcbfe3419c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "53f92e75-7779-494b-8261-e749470e23d8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "598da921-79de-4b29-b176-e6c1a03a8329",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.59"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "4147cd33-6393-4e4c-bde0-f81b21e3c616",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3eaf7915-7454-4da4-b340-65485dd3dc8b",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "460f74f1-5354-4e4d-b207-c200476dcf7c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.59"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "517f8e03-dea2-4e3b-8cf2-f117931e37f8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.22"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "487f5f0a-d825-4484-964d-4edb55d90c09",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.22"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "1f20d999-ea5e-4600-9576-cb39bef8139f",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.58"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "d4876ecd-f52b-415b-840b-4243d9cd7e77",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "d70139a1-25d7-42e9-b45e-3515176625df",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "8e6adda7-c272-4e1e-b4da-848e718c39c1",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "441dc1b6-9bd2-477c-b105-e203f9f92ec0",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e9f1ff1a-8dee-42e3-8412-63ae66eebeed",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "191f5d78-9bc9-43b7-a605-db52f61b09bf",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "89af3dd7-743b-4bbf-8253-473142500fbd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a5cbfe38-073f-4b70-9a21-9525370a07cf",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a18ce372-9c11-4b98-9259-1aead10c9688",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.94"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3bbca9c5-e247-4ede-acb3-f1835a5bce8d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.97"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "253d32c1-069c-4230-bf88-2c75b19dc738",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "85f23850-585d-41d6-ac53-4b87cd486952",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "52fc1a25-fc83-4825-80aa-f098583680cd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "7.26"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "972c889e-9562-411e-baaf-10f5dadd4d87",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "7.26"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "6bdfac92-0b91-40aa-8d10-a044cbcb5aae",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "8.02"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "eef453a1-a234-48b7-9b9c-4de0ea6b9c27",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.36"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "795c6e94-b8b9-4353-810a-7e44b7c055a2",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.36"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "46e53b7c-d55f-4f1a-bbfd-816c6b394b3c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.82"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "183b2c6e-92d8-4dfa-ae62-bc383ad59ec2",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "6a5fcd29-3674-4c70-90e1-138cb9318797",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "7ac0b47b-4db4-45c4-8a7d-76bb67b2b297",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "7.19"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "d9e5100b-f18a-4c8c-aa8c-50156866e7b6",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "9e6b5e98-2c2b-4501-b17a-a09f0f39c0d5",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "7.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "faa70766-3f83-4917-ac30-0f52b98487ff",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "7.19"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "61969f2a-1eca-4c99-bc86-c0deae0618d2",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e92e3e10-6c0b-4ab6-bdb7-7787570424e4",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e48b99ab-5f52-4135-90a8-a7123b7fc0f5",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.83"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a7969a60-9180-46a0-8f80-999055e6a528",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3ea5c2f3-7334-4032-99d5-554ce070332a",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "614c7dd2-7887-40d3-a589-9518c87d6217",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.88"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "94a5341e-9b38-49af-a44d-c290649c3f61",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "6.73"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "ac837285-0d9e-44b7-9267-5903ed8e8a56",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "02401d69-6903-4b51-9b75-a68bb63ff410",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 501,
                  "product_max_tenure": 501,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "501 days",
                  "is_visible": true,
                  "yield": "7.05"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "fbd2be52-74a1-4cd2-aebc-1073e88702dd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "6.73"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "c8c0816c-7a36-4d61-bbf4-f1433c42f320",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "c0e9b2fc-13ad-48be-a4f9-c38aa0cb5a99",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 502,
                  "product_max_tenure": 547,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "502 days",
                  "is_visible": false,
                  "yield": "7.05"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "9f5b5c31-e96d-4946-915a-d14fad4fee8b",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "16453b06-d39c-4531-a704-fa4a7e3030a8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "6.73"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "6a87b038-d18e-43c6-a697-1636b1b77980",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 548,
                  "product_max_tenure": 700,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "18 months",
                  "is_visible": true,
                  "yield": "7.03"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "c783c123-29fc-4eb5-b218-5707415ab0e8",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "6.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "197abcea-0469-4872-bda3-66c02874fac7",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0d5bde14-88e1-4fd1-8023-fc925e60d3bc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 701,
                  "product_max_tenure": 701,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "701 days",
                  "is_visible": true,
                  "yield": "7.15"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "883e385a-49d6-4d8a-b6a7-ca2bd8d78602",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "6.72"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e1d8af70-aa88-4883-847b-056b27a1a6ef",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a4dbec8b-ef07-4e1e-b324-2ec5192728ae",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 702,
                  "product_max_tenure": 998,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "702 days",
                  "is_visible": true,
                  "yield": "7.15"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "ef43280e-e4bf-4410-878e-6e777ebd2cbc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "b3ac88c9-d18c-4fcc-941b-02602d74d80e",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "73958c50-31b9-4962-9817-44a0f6e7d16a",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 999,
                  "product_max_tenure": 1034,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "999 days",
                  "is_visible": true,
                  "yield": "7.35"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e6d36ae3-89f3-440f-a1ba-72d322fc5f69",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "7.37"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "545cc92f-d709-464e-a4b8-5ff4cc3cc9d0",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "b82848be-ee69-41ef-8c4b-6b079f9177ff",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1035,
                  "product_max_tenure": 1095,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "34 Months 1 day",
                  "is_visible": true,
                  "yield": "6.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "fae3c862-2cbe-40cd-b39a-e1005908b0c9",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "7.41"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "40fd2d9c-31f6-4a7c-ad7d-52cf527493ed",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "6.71"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "081c1bc2-aae2-4b5a-8a7f-aa62022804b3",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1096,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "36 months 1 day",
                  "is_visible": true,
                  "yield": "6.76"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "750677f4-0d24-48e0-abf5-085b95c53cd6",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.45"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "430c2d48-9710-4f3e-b2e4-c01157cb534d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.03"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "76f1283d-d307-462b-87a7-d465078f4b65",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "5 years",
                  "is_visible": true,
                  "yield": "4.06"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3e406422-a6a7-4837-a0f4-b6845059ab93",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "6.47"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3043c302-a514-4246-9178-7f263bb72194",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "921af6b9-b12a-4f5b-975d-3b0a961284dd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 366,
                  "product_max_tenure": 366,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 1 day",
                  "is_visible": true,
                  "yield": "6.66"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "703955f3-fb45-4a9a-9362-90e3f73f38c9",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "6.46"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e540bf4b-f66a-400b-9ec9-5df7286e6c5d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "77279014-798a-4216-ade2-69489c55dd52",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 367,
                  "product_max_tenure": 500,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "1 year 2 day",
                  "is_visible": true,
                  "yield": "6.66"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a08540ba-67bd-40a3-a0f7-cbe9914e37c9",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0793de3d-55fb-42d6-aec7-8308490368f3",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "6.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "0d477591-af22-4ccd-aef0-e1001ad0e8c7",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "9.06"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "9f5eb97a-3520-432e-87b0-a6961aec4a69",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.23"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "5beb6f6a-501a-4995-b523-c948beaa0c79",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.21"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "700004fa-30a4-4b00-a9c3-51bf6c78fb26",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 183,
                  "product_max_tenure": 201,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "6 Months 1 day",
                  "is_visible": true,
                  "yield": "6.32"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e8dec518-823e-4ef1-88f9-4c182c2d7662",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.26"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "7cb6db66-1e25-4cbb-a9b1-a80e95f01cfc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "944b5eb4-ac31-496c-94df-e323cf163133",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 202,
                  "product_max_tenure": 364,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "202 days",
                  "is_visible": true,
                  "yield": "6.36"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "843c4b9f-f562-4e33-b0b5-e3d8aa9d4878",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 165,
                  "product_max_tenure": 182,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "165 days",
                  "is_visible": true,
                  "yield": "6.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "ed08e524-1f61-4295-87d9-a2a46c2dba9e",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "5.97"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "3d170381-8fa3-4a6b-9969-881aac1f4c12",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "6.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "150f9ee7-8e90-4b12-a04c-41f460634fdd",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 3650,
                  "product_max_tenure": 3650,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "10 years",
                  "is_visible": true,
                  "yield": "8.14"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "e65f08fb-2abe-41d6-8167-c907daf58cf7",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 61,
                  "product_max_tenure": 90,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "61 days",
                  "is_visible": true,
                  "yield": "5.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "2928bbfe-713d-42b0-a3ec-c5e3dddfd810",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 91,
                  "product_max_tenure": 164,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "91 days",
                  "is_visible": true,
                  "yield": "5.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "41b65daf-c19a-44a6-ad8d-774ed28cb978",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 165,
                  "product_max_tenure": 182,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.50",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "165 days",
                  "is_visible": true,
                  "yield": "5.50"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "42e7f3e4-0a9f-426c-9533-61059e4a7a74",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 46,
                  "product_max_tenure": 60,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.25",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "46 days",
                  "is_visible": true,
                  "yield": "5.25"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "66e977d1-39e6-44b4-a505-a75886f9c5bc",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 61,
                  "product_max_tenure": 90,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "61 days",
                  "is_visible": true,
                  "yield": "5.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "85eb3051-09b2-4e4e-9534-607555548624",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 91,
                  "product_max_tenure": 164,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "5.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "91 days",
                  "is_visible": true,
                  "yield": "5.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "a8550210-195b-4855-ae78-e9a3e6431d11",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 46,
                  "product_max_tenure": 60,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.75",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "46 days",
                  "is_visible": true,
                  "yield": "4.75"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 7,
                  "product_max_tenure": 14,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "7 days",
                  "is_visible": true,
                  "yield": "4.01"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "1f8739ff-a32f-4095-9bca-5b579eca56a4",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 7,
                  "product_max_tenure": 14,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "7 days",
                  "is_visible": true,
                  "yield": "4.01"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "53ee2eb6-b836-43ee-91a6-94821e40f97c",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 15,
                  "product_max_tenure": 45,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "15 days",
                  "is_visible": true,
                  "yield": "4.00"
                },
                {
                  "f_product_id": "",
                  "f_issuer_id": "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                  "f_investment_vehicle_id": "68371cb3-8fe9-472d-bd85-ce5f65372a99",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 15,
                  "product_max_tenure": 45,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-01-19T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "",
                  "product_self_commision": "",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "0 Days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "4.00",
                  "product_ineffective_date": null,
                  "product_min_tenure_label": "15 days",
                  "is_visible": true,
                  "yield": "4.00"
                }
              ],
              "highlights": [
                {
                  "title": "All investments up to ₹5L are insured by DICGC ",
                  "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                },
                {
                  "title": "Zero Balance Savings A/c opened with interest up to 7.75% pa",
                  "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                },
                {
                  "title": "Senior Citizens get up to 0.50% extra",
                  "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                }
              ],
              "about": [
                {
                  "key": "Founded",
                  "value": "2021"
                },
                {
                  "key": "Customers Served",
                  "value": "28 lakh+"
                },
                {
                  "key": "Number of Branches",
                  "value": "400+"
                },
                {
                  "key": "CRISIL Rating",
                  "value": "A1+"
                },
                {
                  "key": "Assets Under Management",
                  "value": "₹10,000 Cr+"
                }
              ],
              "distinctMinTenureValues": [
                {
                  "value": 1035
                },
                {
                  "value": 1096
                },
                {
                  "value": 15
                },
                {
                  "value": 165
                },
                {
                  "value": 1825
                },
                {
                  "value": 183
                },
                {
                  "value": 202
                },
                {
                  "value": 365
                },
                {
                  "value": 3650
                },
                {
                  "value": 366
                },
                {
                  "value": 367
                },
                {
                  "value": 46
                },
                {
                  "value": 501
                },
                {
                  "value": 502
                },
                {
                  "value": 548
                },
                {
                  "value": 61
                },
                {
                  "value": 7
                },
                {
                  "value": 701
                },
                {
                  "value": 702
                },
                {
                  "value": 91
                },
                {
                  "value": 999
                }
              ],
              "interestPayouts": [
                "Monthly",
                "Quarterly",
                "Maturity"
              ]
            }
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain issuer data in payload.issuerData",
              "passed": true,
              "message": "issuerData present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
          "apiMeta": {
            "endpoint": "/detail/:f_issuer_id",
            "method": "GET",
            "guards": "Auth: `services/master-services/src/auth/authGuards/user.jwt.guard.ts`",
            "authHint": "Auth: `services/master-services/src/auth/authGuards/user.jwt.guard.ts`"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_DETAIL_ISSUER_TC_101_Get_Detail_Unauthorized_NoAuth_1",
          "caseName": "[POSITIVE] TC_101_Get_Detail_Unauthorized_NoAuth",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:31.426Z",
          "endedAt": "2026-06-23T11:16:31.430Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "57",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"39-h6wxugZnFxxkjOfxliuYY3JzpSQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied."
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
          "apiMeta": {
            "endpoint": "/detail/:f_issuer_id",
            "method": "GET",
            "guards": "Auth: `services/master-services/src/auth/authGuards/user.jwt.guard.ts`",
            "authHint": "Auth: `services/master-services/src/auth/authGuards/user.jwt.guard.ts`"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_DETAIL_ISSUER_TC_301_Get_Detail_BadRequest_InvalidProductType_FIXMAS0109_3",
          "caseName": "[POSITIVE] TC_301_Get_Detail_BadRequest_InvalidProductType_FIXMAS0109",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.430Z",
          "endedAt": "2026-06-23T11:16:31.436Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "product_type": "ABC"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "182",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"b6-7wu6zgj18r/yroTFBoKK8tiyfug\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": {
              "errorCode": "FIXUSERDEFAULT",
              "error": [
                "FIXMAS0109"
              ],
              "f_error_reason": "",
              "f_error_message": [
                "FIXMAS0109"
              ]
            }
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b?product_type=ABC' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 200, body.statusCode=400)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
          "apiMeta": {
            "endpoint": "/detail/:f_issuer_id",
            "method": "GET",
            "guards": "Auth: `services/master-services/src/auth/authGuards/user.jwt.guard.ts`",
            "authHint": "Auth: `services/master-services/src/auth/authGuards/user.jwt.guard.ts`"
          },
          "expectedErrorCodes": [
            "FIXMAS0109"
          ],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-FREQ-USFB-001_0",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.436Z",
          "endedAt": "2026-06-23T11:16:31.524Z",
          "durationMs": 88,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "85",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-FREQ-USFB-002_1",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.524Z",
          "endedAt": "2026-06-23T11:16:31.628Z",
          "durationMs": 104,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "929",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"3a1-mExs5PPzJznl6LKg9SXph6ZpXt4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "101",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
            "average_yield": "7.21",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.83
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 60.12
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 46.3
                  }
                ]
              }
            ],
            "payout_amount": 60,
            "total_payout": 721
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-FREQ-USFB-003_2",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.628Z",
          "endedAt": "2026-06-23T11:16:31.722Z",
          "durationMs": 94,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Quarterly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "640",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"280-wJ9tYIA8L5fBEIwjaJiiTj/+Ssc\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "90",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Quarterly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "af138a6a-6523-4b65-8588-c8c68337c200",
            "average_yield": "7.25",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.9
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 181.37
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 181.37
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-03-31",
                    "amount": 181.37
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 167.47
                  }
                ]
              }
            ],
            "payout_amount": 181,
            "total_payout": 725
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Quarterly&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-FREQ-USFB-004_3",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.722Z",
          "endedAt": "2026-06-23T11:16:31.732Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "TC-MAT-FREQ-USFB-004"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "HalfYearly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=HalfYearly&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-FREQ-USFB-004\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-FREQ-USFB-005_4",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.733Z",
          "endedAt": "2026-06-23T11:16:31.742Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "TC-MAT-FREQ-USFB-005"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Yearly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Yearly&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-FREQ-USFB-005\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-POS-017_5",
          "caseName": "[POSITIVE] USFB (Unity) valid min boundary",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.742Z",
          "endedAt": "2026-06-23T11:16:31.830Z",
          "durationMs": 88,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "7",
            "investment_amount": "1000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "442",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"1ba-KaXkMIeqzNC0Q+IaqLnl5pNKf48\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "84",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 4,
            "payout_frequency": "Maturity",
            "maturity_date": "2026-06-30",
            "maturity_date_ist": "2026-06-30",
            "f_investment_vehicle_id": "eb4b1ff8-3eb9-4622-bf17-78b04913877d",
            "average_yield": "4.01",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 7,
            "product_max_tenure": 14,
            "product_min_tenure_label": "7 days",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 1001
                  }
                ]
              }
            ],
            "maturity_amount": 1001
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=7&investment_amount=1000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-LIMIT-USFB-001_6",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.830Z",
          "endedAt": "2026-06-23T11:16:31.839Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "TC-MAT-LIMIT-USFB-001"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "999",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "214",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"d6-01ft2Fyu7FRTRYdxlqCDAqs14Lw\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS092",
                "error": "The entered Investment Amount is not accepted by the issuer"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=999&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-LIMIT-USFB-001\"}'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should contain error code(s): FIXMAS092",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS092"
          ],
          "actualErrorCodes": [
            "FIXMAS092"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-LIMIT-USFB-002_7",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.839Z",
          "endedAt": "2026-06-23T11:16:31.931Z",
          "durationMs": 92,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "TC-MAT-LIMIT-USFB-002"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "30000000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "214",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"d6-01ft2Fyu7FRTRYdxlqCDAqs14Lw\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXMAS092",
                "error": "The entered Investment Amount is not accepted by the issuer"
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=30000000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-LIMIT-USFB-002\"}'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should contain error code(s): FIXMAS092",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS092"
          ],
          "actualErrorCodes": [
            "FIXMAS092"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-TAX-USFB-001_8",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.931Z",
          "endedAt": "2026-06-23T11:16:31.943Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "true"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 200, body.statusCode=400)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-WOM-USFB-001_9",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:31.943Z",
          "endedAt": "2026-06-23T11:16:32.030Z",
          "durationMs": 87,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "false",
            "women_citizen": "true",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:31 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=true&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 200, body.statusCode=400)"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-SR-USFB-001_10",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.030Z",
          "endedAt": "2026-06-23T11:16:32.134Z",
          "durationMs": 104,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Maturity",
            "senior_citizen": "true",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "450",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"1c2-vD1HlijJboeoG5VBlYom7mfrWbA\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "100",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.75,
            "payout_frequency": "Maturity",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "82c46b56-95aa-4e4c-8bd5-2a227d43e038",
            "average_yield": "7.98",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-06-23",
                    "amount": 10798
                  }
                ]
              }
            ],
            "maturity_amount": 10798
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=true&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-001_11",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.134Z",
          "endedAt": "2026-06-23T11:16:32.236Z",
          "durationMs": 102,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "929",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"3a1-mExs5PPzJznl6LKg9SXph6ZpXt4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "99",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.25,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "0a91eaa4-4a0f-479f-a10f-3265ca4d1c05",
            "average_yield": "7.21",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 13.83
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 60.12
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 60.12
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 46.3
                  }
                ]
              }
            ],
            "payout_amount": 60,
            "total_payout": 721
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-002_12",
          "caseName": "[POSITIVE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.236Z",
          "endedAt": "2026-06-23T11:16:32.345Z",
          "durationMs": 109,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "true",
            "women_citizen": "false",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "930",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"3a2-DysciZ8EANLdL9Zq2ZmzVpc5jU8\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "105",
            "server": "envoy"
          },
          "responseBody": {
            "product_interest": 7.75,
            "payout_frequency": "Monthly",
            "maturity_date": "2027-06-23",
            "maturity_date_ist": "2027-06-23",
            "f_investment_vehicle_id": "78be9da4-97c7-4880-98f6-b3ebbdc5ca9c",
            "average_yield": "7.75",
            "product_min_investment": 1000,
            "product_max_investment": 29999999,
            "product_min_tenure": 365,
            "product_max_tenure": 365,
            "product_min_tenure_label": "1 year",
            "payout": [
              {
                "year": 2026,
                "data": [
                  {
                    "date": "2026-06-30",
                    "amount": 14.86
                  },
                  {
                    "date": "2026-07-31",
                    "amount": 64.63
                  },
                  {
                    "date": "2026-08-31",
                    "amount": 64.63
                  },
                  {
                    "date": "2026-09-30",
                    "amount": 64.63
                  },
                  {
                    "date": "2026-10-31",
                    "amount": 64.63
                  },
                  {
                    "date": "2026-11-30",
                    "amount": 64.63
                  },
                  {
                    "date": "2026-12-31",
                    "amount": 64.63
                  }
                ]
              },
              {
                "year": 2027,
                "data": [
                  {
                    "date": "2027-01-31",
                    "amount": 64.63
                  },
                  {
                    "date": "2027-02-28",
                    "amount": 64.63
                  },
                  {
                    "date": "2027-03-31",
                    "amount": 64.63
                  },
                  {
                    "date": "2027-04-30",
                    "amount": 64.63
                  },
                  {
                    "date": "2027-05-31",
                    "amount": 64.63
                  },
                  {
                    "date": "2027-06-23",
                    "amount": 49.76
                  }
                ]
              }
            ],
            "payout_amount": 65,
            "total_payout": 775
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            },
            {
              "description": "Response should contain maturity or payout amount fields",
              "passed": true,
              "message": "Maturity/payout fields present"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-003_13",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.345Z",
          "endedAt": "2026-06-23T11:16:32.355Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "FLAG-003"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "true",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=true&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"FLAG-003\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-004_14",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.356Z",
          "endedAt": "2026-06-23T11:16:32.366Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "FLAG-004"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "false",
            "tax_saver": "true"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"FLAG-004\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-005_15",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.366Z",
          "endedAt": "2026-06-23T11:16:32.376Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "FLAG-005"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "true",
            "women_citizen": "true",
            "tax_saver": "false"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=true&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"FLAG-005\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-006_16",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.376Z",
          "endedAt": "2026-06-23T11:16:32.386Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "FLAG-006"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "true",
            "women_citizen": "false",
            "tax_saver": "true"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=false&tax_saver=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"FLAG-006\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-007_17",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.386Z",
          "endedAt": "2026-06-23T11:16:32.396Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "FLAG-007"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "false",
            "women_citizen": "true",
            "tax_saver": "true"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=true&tax_saver=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"FLAG-007\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        },
        {
          "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-008_18",
          "caseName": "[EDGE] `USFB`",
          "service": "master-services",
          "method": "GET",
          "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.396Z",
          "endedAt": "2026-06-23T11:16:32.430Z",
          "durationMs": 34,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "FLAG-008"
          },
          "requestQuery": {
            "tenure": "365",
            "investment_amount": "10000",
            "payout_frequency": "Monthly",
            "senior_citizen": "true",
            "women_citizen": "true",
            "tax_saver": "true"
          },
          "responseHeaders": {
            "access-control-allow-origin": "*",
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "537",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"219-NZBk2+StBIatLXeUELYm9CMNJ3I\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options.",
                "f_error_message": "",
                "errorCode": "FIXMAS005",
                "error": "No Fixed Deposits were found based on your inputs. Please consider different values for Investment Amount, Tenure, Payout Frequency, or flags for Senior Citizen, Women, and Tax-saver options."
              }
            ]
          },
          "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/USFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=true&tax_saver=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"FLAG-008\"}'",
          "validations": [
            {
              "description": "Response should contain error code(s): FIXMAS005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
          "apiMeta": {
            "endpoint": "/api/v1/detail/maturity-amount/{f_code}",
            "method": "GET",
            "authHint": "**Auth:** Partner headers required",
            "summary": "- **API Name:** Get Estimated Maturity Payout"
          },
          "expectedErrorCodes": [
            "FIXMAS005"
          ],
          "actualErrorCodes": [
            "FIXMAS005"
          ]
        }
      ],
      "summary": {
        "total": 59,
        "passed": 59,
        "failed": 0,
        "skipped": 0,
        "running": 0,
        "pending": 0,
        "durationMs": 4676
      }
    },
    {
      "stepId": "unity-step-03-pan-verification",
      "stepName": "PAN Verification",
      "cases": [
        {
          "caseId": "UNITY_PAN_001",
          "caseName": "Get user profile before PAN entry (Unity / USFB)",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:32.430Z",
          "endedAt": "2026-06-23T11:16:32.479Z",
          "durationMs": 49,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1395",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"573-JqAIlQuT9OBxDKj/lvZa9A5XQNw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "46",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "",
              "middle_name": "",
              "last_name": "",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "918668336629",
              "code": "91",
              "dob": null,
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "is_email_verified": false,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": null,
              "profile_updated_at": null,
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_personal_details": {
                "BAJ": false,
                "MAH": false,
                "SHRI": false
              }
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Response should contain user data",
              "passed": true,
              "message": "User data present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_002",
          "caseName": "Track insights event for PAN verification step (Unity / USFB)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/insights/event",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:32.480Z",
          "endedAt": "2026-06-23T11:16:32.626Z",
          "durationMs": 146,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "state": "KYC_VERIFICATION",
            "sub_state": "USFB_PAN_VERIFICATION",
            "status": "SUCCESS",
            "issuer_code": "USFB",
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            },
            "d1": "{\"event_id\":\"819d6323-9cd4-461c-bcd6-fa4d04501c5f\"}",
            "data": "{\"issuer_code\":\"USFB\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "65",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:32 GMT",
            "etag": "W/\"41-2l+L+JmzzRvQTxCn/cIinXjoeys\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "143",
            "server": "envoy"
          },
          "responseBody": {
            "event_id": "819d6323-9cd4-461c-bcd6-fa4d04501c5f-1782213392488"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/insights/event' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"state\":\"KYC_VERIFICATION\",\"sub_state\":\"USFB_PAN_VERIFICATION\",\"status\":\"SUCCESS\",\"issuer_code\":\"USFB\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"},\"d1\":\"{\\\"event_id\\\":\\\"819d6323-9cd4-461c-bcd6-fa4d04501c5f\\\"}\",\"data\":\"{\\\"issuer_code\\\":\\\"USFB\\\",\\\"fd_info\\\":{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain event_id",
              "passed": true,
              "message": "event_id present"
            }
          ],
          "docsFile": "user-services/API_QA_POST_INSIGHTS_EVENT.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_003",
          "caseName": "Verify PAN for Unity / USFB",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:32.626Z",
          "endedAt": "2026-06-23T11:16:33.492Z",
          "durationMs": 866,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:33 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "862",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Response should indicate PAN verification result",
              "passed": true,
              "message": "PAN verification result present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_004",
          "caseName": "Verify PAN response success flag",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:33.492Z",
          "endedAt": "2026-06-23T11:16:34.073Z",
          "durationMs": 581,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:34 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "579",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_005",
          "caseName": "Verify PAN response schema",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:34.074Z",
          "endedAt": "2026-06-23T11:16:34.791Z",
          "durationMs": 717,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:34 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "715",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Response schema should match contract",
              "passed": true,
              "message": "Response schema valid"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_006",
          "caseName": "Verify PAN response content type",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:34.792Z",
          "endedAt": "2026-06-23T11:16:35.324Z",
          "durationMs": 532,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:35 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "528",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Response content type should be application/json",
              "passed": true,
              "message": "application/json response"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_007",
          "caseName": "Verify PAN response time",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:35.324Z",
          "endedAt": "2026-06-23T11:16:35.942Z",
          "durationMs": 618,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:35 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "614",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Response should complete within 5000ms",
              "passed": true,
              "message": "duration=618ms"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_008",
          "caseName": "Verify payload object exists in PAN success response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:35.942Z",
          "endedAt": "2026-06-23T11:16:36.433Z",
          "durationMs": 491,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "488",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Payload object should exist",
              "passed": true,
              "message": "payload present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_009",
          "caseName": "Verify PAN field blank",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.433Z",
          "endedAt": "2026-06-23T11:16:36.445Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "307",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"133-qUvnp6YJVYDF+eWnnFEL7DIUbRU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1022",
                "error": "PAN number is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1022 or FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1022/FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1022",
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001",
            "FIXUSER1022"
          ]
        },
        {
          "caseId": "UNITY_PAN_010",
          "caseName": "Verify PAN field null",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.445Z",
          "endedAt": "2026-06-23T11:16:36.460Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": null,
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "307",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"133-qUvnp6YJVYDF+eWnnFEL7DIUbRU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1022",
                "error": "PAN number is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":null,\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1022 or FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1022/FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1022",
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001",
            "FIXUSER1022"
          ]
        },
        {
          "caseId": "UNITY_PAN_011",
          "caseName": "Verify PAN field missing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.460Z",
          "endedAt": "2026-06-23T11:16:36.473Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "307",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"133-qUvnp6YJVYDF+eWnnFEL7DIUbRU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1022",
                "error": "PAN number is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1022 or FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1022/FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1022",
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001",
            "FIXUSER1022"
          ]
        },
        {
          "caseId": "UNITY_PAN_012",
          "caseName": "Verify PAN less than 10 characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.473Z",
          "endedAt": "2026-06-23T11:16:36.531Z",
          "durationMs": 58,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR343",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "55",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR343\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_013",
          "caseName": "Verify PAN more than 10 characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.531Z",
          "endedAt": "2026-06-23T11:16:36.544Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438LL",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438LL\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_014",
          "caseName": "Verify PAN with lowercase characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.544Z",
          "endedAt": "2026-06-23T11:16:36.633Z",
          "durationMs": 89,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "blxpr3438l",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "85",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"blxpr3438l\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_015",
          "caseName": "Verify PAN with special characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.633Z",
          "endedAt": "2026-06-23T11:16:36.653Z",
          "durationMs": 20,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXP@3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "17",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXP@3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_016",
          "caseName": "Verify PAN with spaces",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.653Z",
          "endedAt": "2026-06-23T11:16:36.739Z",
          "durationMs": 86,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXP R3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXP R3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_017",
          "caseName": "Verify numeric-only PAN",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.739Z",
          "endedAt": "2026-06-23T11:16:36.832Z",
          "durationMs": 93,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "1234567890",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "89",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_018",
          "caseName": "Verify alphabet-only PAN",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.832Z",
          "endedAt": "2026-06-23T11:16:36.844Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "ABCDEFGHIJ",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"ABCDEFGHIJ\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_019",
          "caseName": "Verify invalid PAN pattern",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.845Z",
          "endedAt": "2026-06-23T11:16:36.855Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "AB123456CD",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"AB123456CD\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_020",
          "caseName": "Verify SQL injection in PAN field",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.855Z",
          "endedAt": "2026-06-23T11:16:36.866Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "' OR 1=1 --",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"'\\'' OR 1=1 --\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_021",
          "caseName": "Verify XSS payload in PAN field",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.866Z",
          "endedAt": "2026-06-23T11:16:36.931Z",
          "durationMs": 65,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "<script>alert(1)</script>",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "59",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"<script>alert(1)</script>\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_022",
          "caseName": "Verify malformed request JSON",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.931Z",
          "endedAt": "2026-06-23T11:16:36.936Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": "{\"number\":",
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "content-length": "248",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"f8-ydQRwr2txlf09MfVIoTWDDYnXgw\"",
            "vary": "Origin",
            "x-powered-by": "Express",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Unexpected token '\"', \"\"{\\\"number\\\":\"\" is not valid JSON",
            "payload": {},
            "error": {
              "statusCode": 400,
              "message": "Unexpected token '\"', \"\"{\\\"number\\\":\"\" is not valid JSON",
              "error": "Bad Request"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_023",
          "caseName": "Verify empty request body",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.936Z",
          "endedAt": "2026-06-23T11:16:36.947Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "307",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"133-qUvnp6YJVYDF+eWnnFEL7DIUbRU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1022",
                "error": "PAN number is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001",
            "FIXUSER1022"
          ]
        },
        {
          "caseId": "UNITY_PAN_024",
          "caseName": "Verify request without Content-Type header",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:36.947Z",
          "endedAt": "2026-06-23T11:16:37.031Z",
          "durationMs": 84,
          "requestHeaders": {
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": "{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}",
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "307",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:36 GMT",
            "etag": "W/\"133-qUvnp6YJVYDF+eWnnFEL7DIUbRU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "76",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1022",
                "error": "PAN number is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001",
            "FIXUSER1022"
          ]
        },
        {
          "caseId": "UNITY_PAN_025",
          "caseName": "Verify invalid Content-Type",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:37.031Z",
          "endedAt": "2026-06-23T11:16:37.048Z",
          "durationMs": 17,
          "requestHeaders": {
            "Content-Type": "text/plain",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": "{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}",
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "307",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:37 GMT",
            "etag": "W/\"133-qUvnp6YJVYDF+eWnnFEL7DIUbRU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "13",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1022",
                "error": "PAN number is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: text/plain' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001",
            "FIXUSER1022"
          ]
        },
        {
          "caseId": "UNITY_PAN_026",
          "caseName": "Verify error response schema",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:37.048Z",
          "endedAt": "2026-06-23T11:16:37.130Z",
          "durationMs": 82,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "1234567890",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:37 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "79",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Error response schema should match contract",
              "passed": true,
              "message": "Error schema valid"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_027",
          "caseName": "Verify error response message",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:37.130Z",
          "endedAt": "2026-06-23T11:16:37.144Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "1234567890",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:37 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Error response should contain message text",
              "passed": true,
              "message": "message=\"Bad request\""
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_028",
          "caseName": "Verify error code mapping",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:37.144Z",
          "endedAt": "2026-06-23T11:16:37.240Z",
          "durationMs": 96,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "1234567890",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:37 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "93",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_029",
          "caseName": "Verify payload object in error response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:37.240Z",
          "endedAt": "2026-06-23T11:16:37.251Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "1234567890",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:37 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Payload object should exist in error response",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PAN_030",
          "caseName": "Verify required response headers",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:37.251Z",
          "endedAt": "2026-06-23T11:16:38.864Z",
          "durationMs": 1613,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:38 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1609",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Required response headers should be present",
              "passed": true,
              "message": "Required response headers present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_031",
          "caseName": "Verify PAN data is not exposed in response",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:38.864Z",
          "endedAt": "2026-06-23T11:16:39.554Z",
          "durationMs": 690,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:39 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "687",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Response should not expose PAN or DOB values",
              "passed": true,
              "message": "No PAN/DOB leakage in response body"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_032",
          "caseName": "Verify concurrent requests with same PAN",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:39.554Z",
          "endedAt": "2026-06-23T11:16:40.166Z",
          "durationMs": 612,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:40 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "562",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 2 requests completed without 5xx/network errors"
            },
            {
              "description": "Concurrent requests should return a consistent success/error shape",
              "passed": true,
              "message": "All 2 concurrent requests returned the same response shape (201:1:200)"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_033",
          "caseName": "Verify API under load",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:40.166Z",
          "endedAt": "2026-06-23T11:16:42.049Z",
          "durationMs": 1883,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:42 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "512",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 3 requests completed without 5xx/network errors"
            },
            {
              "description": "Average response time across burst should stay under 5000ms",
              "passed": true,
              "message": "Average duration 796ms across 3 requests"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_034",
          "caseName": "Verify API rate limiting",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:42.049Z",
          "endedAt": "2026-06-23T11:16:43.292Z",
          "durationMs": 1243,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:43 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "630",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 3 requests succeeded with HTTP 200/201"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_035",
          "caseName": "Verify DOB field blank",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:43.292Z",
          "endedAt": "2026-06-23T11:16:43.337Z",
          "durationMs": 45,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:43 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "41",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1004 or FIXUSER1022",
              "passed": true,
              "message": "FIXUSER1004/FIXUSER1022 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1004"
          ],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "UNITY_PAN_036",
          "caseName": "Verify DOB field null",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:43.337Z",
          "endedAt": "2026-06-23T11:16:43.808Z",
          "durationMs": 470,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": null,
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "247",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:43 GMT",
            "etag": "W/\"f7-ReNQ3SSsulG5dfN22NdHwWlpnCI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "468",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1291",
                "error": "The PAN you entered seems incorrect. Please check and enter a valid PAN for verification. "
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":null,\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1291"
          ]
        },
        {
          "caseId": "UNITY_PAN_037",
          "caseName": "Verify DOB field missing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:43.808Z",
          "endedAt": "2026-06-23T11:16:44.219Z",
          "durationMs": 411,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "247",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:44 GMT",
            "etag": "W/\"f7-ReNQ3SSsulG5dfN22NdHwWlpnCI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "408",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1291",
                "error": "The PAN you entered seems incorrect. Please check and enter a valid PAN for verification. "
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1291"
          ]
        },
        {
          "caseId": "UNITY_PAN_038",
          "caseName": "Verify invalid DOB format",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:44.219Z",
          "endedAt": "2026-06-23T11:16:44.233Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "30-04-1992",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:44 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"30-04-1992\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1004",
              "passed": true,
              "message": "FIXUSER1004 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1004"
          ],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "UNITY_PAN_039",
          "caseName": "Verify future DOB",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:44.233Z",
          "endedAt": "2026-06-23T11:16:44.329Z",
          "durationMs": 96,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "2050-01-01",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "194",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:44 GMT",
            "etag": "W/\"c2-ue3VX43dASmbpm+YepGpr2KuIH4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "93",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1094",
                "error": "Date of birth cannot be in the future"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"2050-01-01\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should indicate a structured error envelope",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1094",
              "passed": true,
              "message": "FIXUSER1094 present"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [
            "FIXUSER1094"
          ],
          "actualErrorCodes": [
            "FIXUSER1094"
          ]
        },
        {
          "caseId": "UNITY_PAN_040",
          "caseName": "Verify invalid DOB date",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:44.329Z",
          "endedAt": "2026-06-23T11:16:44.956Z",
          "durationMs": 627,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-02-31",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:44 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "624",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-02-31\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Invalid DOB should either be rejected or be accepted by current live API behavior",
              "passed": true,
              "message": "Invalid DOB accepted by current API"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_041",
          "caseName": "Verify consent unchecked",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:44.957Z",
          "endedAt": "2026-06-23T11:16:46.529Z",
          "durationMs": 1572,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": false,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:46 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1569",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":false,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Unchecked consent should either be rejected or be accepted by current live API behavior",
              "passed": true,
              "message": "Unchecked consent accepted by current API"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_042",
          "caseName": "Verify consent field missing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:46.529Z",
          "endedAt": "2026-06-23T11:16:47.024Z",
          "durationMs": 495,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:47 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "492",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Missing consent should either be rejected or be accepted by current live API behavior",
              "passed": true,
              "message": "Missing consent accepted by current API"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_043",
          "caseName": "Verify consent null",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:47.024Z",
          "endedAt": "2026-06-23T11:16:47.473Z",
          "durationMs": 449,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": null,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:47 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "445",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":null,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Null consent should either be rejected or be accepted by current live API behavior",
              "passed": true,
              "message": "Null consent accepted by current API"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_044",
          "caseName": "Verify consent as string",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:47.473Z",
          "endedAt": "2026-06-23T11:16:48.657Z",
          "durationMs": 1184,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": "true",
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:48 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1181",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":\"true\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "String consent should either be rejected or be accepted by current live API behavior",
              "passed": true,
              "message": "String consent accepted by current API"
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_045",
          "caseName": "Verify PAN holder name returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:48.657Z",
          "endedAt": "2026-06-23T11:16:49.651Z",
          "durationMs": 994,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:49 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "991",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "payload.name should be populated",
              "passed": true,
              "message": "name=\"DILIP KALU RATHOD\""
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_046",
          "caseName": "Verify father name returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:49.651Z",
          "endedAt": "2026-06-23T11:16:50.426Z",
          "durationMs": 775,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "number": "BLXPR3438L",
            "dob": "1992-04-30",
            "consent_checked": true,
            "fd_info": {
              "amount": 50000,
              "tenure": 12,
              "payout_frequency": "maturity",
              "issuer_code": "USFB"
            }
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "139",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:50 GMT",
            "etag": "W/\"8b-mkAMZeXWHfwsFaUd1YtotXtQUhY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "756",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Verification Successful",
            "payload": {
              "name": "DILIP KALU RATHOD",
              "father_name": "KALU NATHU RATHOD"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"number\":\"BLXPR3438L\",\"dob\":\"1992-04-30\",\"consent_checked\":true,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "payload.father_name should be populated",
              "passed": true,
              "message": "father_name=\"KALU NATHU RATHOD\""
            }
          ],
          "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_900",
          "caseName": "[Happy] POST /issuer-apis/unity/v2/check-etb — post-PAN ETB check",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:50.426Z",
          "endedAt": "2026-06-23T11:16:50.663Z",
          "durationMs": 237,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "flowId": "",
            "createNewLink": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "949",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:50 GMT",
            "etag": "W/\"3b5-rTR/2qAmhNLcSNB5e6HLK375PNU\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "222",
            "server": "envoy"
          },
          "responseBody": {
            "data": {
              "etb": false,
              "link360": "",
              "linkExpiry": null,
              "session_id": "",
              "vkycStatus": null,
              "onGoingSessionId": null,
              "sa_account_num": null,
              "sa_account_ifsc": null,
              "sa_account_nominee_exists": false,
              "possibleValues": {
                "kyc_result_approved": {
                  "value": "kyc_result_approved",
                  "order": 1,
                  "title": "Kyc Result Approved"
                },
                "kyc_result_rejected": {
                  "value": "kyc_result_rejected",
                  "order": 2,
                  "title": "Kyc Result Rejected"
                },
                "kyc_checker_approved": {
                  "value": "kyc_checker_approved",
                  "order": 3,
                  "title": "Kyc Checker Approved"
                },
                "kyc_checker_rejected": {
                  "value": "kyc_checker_rejected",
                  "order": 4,
                  "title": "Kyc Checker Rejected"
                },
                "kyc_cust_id_created": {
                  "value": "kyc_cust_id_created",
                  "order": 5,
                  "title": "Kyc Cust Id Created"
                },
                "re_vkyc_user": {
                  "value": "re_vkyc_user",
                  "order": 6,
                  "title": "re_vkyc_user"
                }
              },
              "latestRecord": null,
              "sa_account_status": "",
              "sa_account_balance": null,
              "have_other_products": false,
              "flowId": null,
              "customer_created_by_sdk": null,
              "is_pan_verified": false,
              "is_bank_verified": false
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb?flowId=&createNewLink=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Status 200 or 201",
              "passed": true,
              "message": "Expected 200/201, got 201"
            },
            {
              "description": "Response indicates ETB status",
              "passed": true,
              "message": "ETB status present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_901",
          "caseName": "[Happy] POST /issuer-apis/unity/v2/check-etb — flowId=SA",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:50.664Z",
          "endedAt": "2026-06-23T11:16:50.769Z",
          "durationMs": 105,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "flowId": "SA"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "949",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:50 GMT",
            "etag": "W/\"3b5-rTR/2qAmhNLcSNB5e6HLK375PNU\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "103",
            "server": "envoy"
          },
          "responseBody": {
            "data": {
              "etb": false,
              "link360": "",
              "linkExpiry": null,
              "session_id": "",
              "vkycStatus": null,
              "onGoingSessionId": null,
              "sa_account_num": null,
              "sa_account_ifsc": null,
              "sa_account_nominee_exists": false,
              "possibleValues": {
                "kyc_result_approved": {
                  "value": "kyc_result_approved",
                  "order": 1,
                  "title": "Kyc Result Approved"
                },
                "kyc_result_rejected": {
                  "value": "kyc_result_rejected",
                  "order": 2,
                  "title": "Kyc Result Rejected"
                },
                "kyc_checker_approved": {
                  "value": "kyc_checker_approved",
                  "order": 3,
                  "title": "Kyc Checker Approved"
                },
                "kyc_checker_rejected": {
                  "value": "kyc_checker_rejected",
                  "order": 4,
                  "title": "Kyc Checker Rejected"
                },
                "kyc_cust_id_created": {
                  "value": "kyc_cust_id_created",
                  "order": 5,
                  "title": "Kyc Cust Id Created"
                },
                "re_vkyc_user": {
                  "value": "re_vkyc_user",
                  "order": 6,
                  "title": "re_vkyc_user"
                }
              },
              "latestRecord": null,
              "sa_account_status": "",
              "sa_account_balance": null,
              "have_other_products": false,
              "flowId": null,
              "customer_created_by_sdk": null,
              "is_pan_verified": false,
              "is_bank_verified": false
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb?flowId=SA' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Status 200 or 201",
              "passed": true,
              "message": "Expected 200/201, got 201"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_902",
          "caseName": "[Auth Error] POST /issuer-apis/unity/v2/check-etb — no token",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:50.769Z",
          "endedAt": "2026-06-23T11:16:50.773Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "55",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:50 GMT",
            "etag": "W/\"37-Vpk+yZYTrfB878bqirsqLrIUy3Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "error": "Access Denied."
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should return 401",
              "passed": true,
              "message": "Expected 401, got 401"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PAN_903",
          "caseName": "[Happy] POST /issuer-apis/unity/v3/check-status — after PAN consent",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:50.773Z",
          "endedAt": "2026-06-23T11:16:51.484Z",
          "durationMs": 711,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}",
            "pan_consent": true
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1497",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:51 GMT",
            "etag": "W/\"5d9-jVYCz65/Ci0ET/ZnHXpc/ATIe9E\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "708",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=1qA%2BriTbfqpvJqkWJa%2F4JnFHm2oHZxKoPuC%2FqK9O%2FjCX1twbzK35ZEcVVD1qUnWQ4PfWYpF0hV3jppa23XRjMdkCaAhfId2MkqBxXd%2B4wap71AM8c37KCDx6I7M0kIL%2FD%2B1hujWej%2BdAe4erUCe8QG0EaOb7FUfharYDIyYlFmA%3D&encKey=sIKuVc21Xw6iMy5MuuEBFGvj4VS1GAj0jq6NobPjCWD8CTPNByy6p%2Fuk5O2qW9scZSjSFSHIiHs03ey55gmZZdmw%2F1q52kYjV6KX6cdGrksiWEYyAAqrl70lWnu%2FQzv7F3XUrd9CskGj0LpfvFWvZafDMtEwHobbAUO82DzyAcMTF6GWRRi5KL8Fq2BhK%2FnGzP%2Fb90MITOM2ALMDEYSLJoluESEQMvNFRZys5umuRQXorl4E466SFqAzYyFbcXxzI8e5XryZBg8DKsl6n44NTCYYyrfKUDlGG5xTtRMiZnNDAluUxORVwdR9rimsQ5UmtSAhFmOyAcu2YY2Mj9AJcg%3D%3D",
              "ekyc_request_id": "FI202606231116511048",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\",\"pan_consent\":true}'",
          "validations": [
            {
              "description": "Status 200 or 201",
              "passed": true,
              "message": "Expected 200/201, got 201"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        }
      ],
      "summary": {
        "total": 50,
        "passed": 50,
        "failed": 0,
        "skipped": 0,
        "running": 0,
        "pending": 0,
        "durationMs": 19047
      }
    },
    {
      "stepId": "unity-step-04-ekyc",
      "stepName": "eKYC Link Generation",
      "cases": [
        {
          "caseId": "UNITY_EKYC_001",
          "caseName": "[Happy] Check status with redirection_url — generate eKYC link",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:51.484Z",
          "endedAt": "2026-06-23T11:16:51.636Z",
          "durationMs": 152,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "redirection_url": "https://app.fixerra.in/ekyc",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1567",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:51 GMT",
            "etag": "W/\"61f-t4jrohaxcrdF8aOzgTpCIxdLatw\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "148",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=mUIAhPa7qG1D5D1GV7vR5yeRW5RQBNmUAFYyfPiLaZD777RfJpUXLMlQqgW%2BFuhqCg8Q4qKeiICtr%2FEhyd%2FqleZhpnLINOyRP5gLoeRqchqy%2BcIv8iBAV0LZjTpxIkbMFUbFmFWCk1jCM4KmuktWJl6Z2mY4leXT3%2B%2FE68OOhZJlX%2FXYja4SfuhiJlsH6ceOMl4fSmvt9zlfgwuw8IQeX11OCbSZ3YUu1bI2cTU6LXA%3D&encKey=1iVJEnolGBdP2o1AMdMESEFQ%2FHxZ8Rd9zPZco94TDF5aC3hbFllUrQXdE0Sm3i07ktFK3S4uJSsd6T2XRvz1ZdHfFjav7Dj8WaqF1o7t7kGFKZUfMO9xHHqXpva%2F9UGro7lslkM8j7wzeF6JY7n6F9rjsF1o6nndSN6w%2F7uRGPU1TsoDdFOv1DDAhB%2BArlv1VrXlLZU%2BJSD%2Bugs5Dmz50Kqw3h6GolvkYHqaA%2FfosRP%2FsF8nQXz7hBnYA3vMpnqmEYpBTdDMpAX%2BPdTK9obsSmJIui1EsGqWu09p7fw1iUHcbHFeYp14trVjyxF4adx4t0aViaSGZ9sbZmLMLB1ilg%3D%3D",
              "ekyc_request_id": "FI202606231116517911",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"redirection_url\":\"https://app.fixerra.in/ekyc\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response envelope has success + statusCode fields",
              "passed": true,
              "message": "Standard Fixerra envelope present"
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "Payload present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_002",
          "caseName": "[Validation] is_ekyc_verified is a boolean",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:51.636Z",
          "endedAt": "2026-06-23T11:16:51.780Z",
          "durationMs": 144,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "redirection_url": "https://app.fixerra.in/ekyc",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1571",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:51 GMT",
            "etag": "W/\"623-UR+cdvHw4VR1koomVdPXeizhfyA\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "141",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=p3nWpFspQKfDaDMeGisLWacCHQp7JRIfGBIPYc72umJQWD5soJdwqai8M4NrRp0EmB7Nkx1AO5Lx%2BNm16uHARPWVTYcpZDvgqGsRGPdwQ6whYNv2YWtTlOpTVMEHL9CmjAeBDIE33oF1BA6%2Fd5WnzIkgzY7uZhY8pP2PpCQ5%2FnFfNJ8eTY4gHUrU%2F8hGM3kJVnvdxra0GMaZfkOymEVYzph5P18QN7sGkZeJMl84MO4%3D&encKey=lGdv%2FSF7SWRpID5wtZ5T9LU0zo310avYf9DPyOzQFSTofKg%2BCWxlCsbh5zt312oFFIlNvK3OmAuJSDAjv5g3r9s2e8pbZXGK7js1w1JJHe%2BBRRtn7G9tpD6vQYJ4xUcaGbg7BaqMHkPersVqqOHJY0bQ7hgbidnguevGVt8P%2Btv2AxMdUM0DF7%2F7fv8r%2BD2XFAjZvzUlesurtLmjgy6GpGTCNGnAWxPd%2BvCTA1qWC5vbpxxDr3cQJmeIzbVxIYCex%2FlUXiSy2%2FyD7fYgkTzBpg9z%2BimBTetsu6gnxLf%2FTPVcWBRk%2B8pgRNYao%2F8VeI0aQ%2FZ1nQo7mVou9KKRSXT7Ow%3D%3D",
              "ekyc_request_id": "FI202606231116516875",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"redirection_url\":\"https://app.fixerra.in/ekyc\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.is_ekyc_verified should be boolean",
              "passed": true,
              "message": "is_ekyc_verified=false"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_003",
          "caseName": "[Validation] When not verified, ekyc_url is present and non-empty",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:51.781Z",
          "endedAt": "2026-06-23T11:16:51.963Z",
          "durationMs": 182,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "redirection_url": "https://app.fixerra.in/ekyc",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1579",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:51 GMT",
            "etag": "W/\"62b-a3t7glFm7uKJbZQLhigW275Pdu4\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "179",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=U%2FOTynjajzZtGTlXB2Smo4A6cv7mlPQ5sB6rtpDO3G0f7bhfDdIN0vAhMkuPi51C448HgIfW8Ww%2BBg%2FHDYjUbZvXxuExRM1BEeO5s5RjUaHblu%2FR2qsJTrQ6hpSw4CGFCKEaEIpib1izWDTp8RNQPFn%2BcUdThWqAtWhX9bxM7LTL5tKKW4tYRvNdwJhbm6965oOs164Sq2qWDa%2FIYCw%2FhFRipoHCjYru8EtN57uPuFk%3D&encKey=ORidtqzYmktC08E8ObH57Ey55dBKHyScMQ9uCVmMwd8vrcJ%2Fs52R8P3sKyfBzlBQwFtWgpRsqscMBnN468H6W9%2B5kZVR2FKc%2F6ys2HQ6cSIyzzr%2FKKsGEKgHNDVTk4L4k1GBGO1NcnwrZzbhTnEe%2FBrqjaEvGpLtoBf6micQP9w%2Bsggw%2BRvkpCw%2BJFh2T9UB3miUJEGgQyAsGky%2FrKkBJnx0B%2B3z8Qo48WPcWUi2o2A079PQuOyeQHng1TNpc6y7zAx%2BHsFpkGYUVltnkcszjXS8KxOXC1bt%2BSqKMTs8cSKUKSUdn9%2FSq5LGFYYu%2B0Uk9e0MfXBMRKuw1JwBKpva%2FQ%3D%3D",
              "ekyc_request_id": "FI202606231116515840",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"redirection_url\":\"https://app.fixerra.in/ekyc\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "ekyc_url present and non-empty when is_ekyc_verified is false",
              "passed": true,
              "message": "ekyc_url=https://aadhaar-uat.unitybank.co.in/?encPayload=U%2FOTynjajzZtGTlXB2Smo4A6cv7mlPQ5sB6rtpDO3G0f7bhfDdIN0vAhMkuPi51C448HgIfW8Ww%2BBg%2FHDYjUbZvXxuExRM1BEeO5s5RjUaHblu%2FR2qsJTrQ6hpSw4CGFCKEaEIpib1izWDTp8RNQPFn%2BcUdThWqAtWhX9bxM7LTL5tKKW4tYRvNdwJhbm6965oOs164Sq2qWDa%2FIYCw%2FhFRipoHCjYru8EtN57uPuFk%3D&encKey=ORidtqzYmktC08E8ObH57Ey55dBKHyScMQ9uCVmMwd8vrcJ%2Fs52R8P3sKyfBzlBQwFtWgpRsqscMBnN468H6W9%2B5kZVR2FKc%2F6ys2HQ6cSIyzzr%2FKKsGEKgHNDVTk4L4k1GBGO1NcnwrZzbhTnEe%2FBrqjaEvGpLtoBf6micQP9w%2Bsggw%2BRvkpCw%2BJFh2T9UB3miUJEGgQyAsGky%2FrKkBJnx0B%2B3z8Qo48WPcWUi2o2A079PQuOyeQHng1TNpc6y7zAx%2BHsFpkGYUVltnkcszjXS8KxOXC1bt%2BSqKMTs8cSKUKSUdn9%2FSq5LGFYYu%2B0Uk9e0MfXBMRKuw1JwBKpva%2FQ%3D%3D"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_004",
          "caseName": "[Validation] ekyc_url is a well-formed https URL",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:51.963Z",
          "endedAt": "2026-06-23T11:16:52.285Z",
          "durationMs": 322,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "redirection_url": "https://app.fixerra.in/ekyc",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1555",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:52 GMT",
            "etag": "W/\"613-bjggn3FupAXraN/fXHXii7Y1xco\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "319",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=cja3ygGcH2K447gDe3O8mLpX1zFbunf6sEISXKif9bYyyz4diNt3Cvn76sQQl3KD212GfT8yYu6uOx4REuY5XAtkvdTAYndgenceSY%2Fn3GQ8dIEV8Gt%2BkkNj7rk1cLmgPUMdf8DG4d6l81o9JUvArF72CumX%2FWUR6SdcuTc1FPKLM3LLYr9KVhA0nqONUJzXzr7vAFlV8gFwD2fZwUu02%2BdCDU%2BKKtIJMgI0iDiiYU4%3D&encKey=Ppim8lnCjeGybK2VYSNdFZmgJnEv1aNuX8aF09GNAobh15eHDIXEwwTcebms8RE8hg7VzpC8YFTj6GE0fJBSRj0fyj%2BsK8R1H4aXYUxOXwqPRRbrotnn0fCFQd1sh%2BHp7a8qEPSRcdTh6DO08XzcqRV8pHD9Sutl3BVZtgDxO7xoY4Y4pyTdcDr0vFbT904tQWySkCuz4dtnKX4EFIQr5tG4dq5n22MQl0AmTNzx%2FkftRu0yTD7nVyQGv%2Fh8W5PJB8aFHd9CYVVaKpJLQ8CmK0kBJSZD4JG%2B3A5D9pnyqfEzyjI0fK7vpiXDs1BNtz7TETDDjmp0vA52mhAjT30iHQ%3D%3D",
              "ekyc_request_id": "FI202606231116525272",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"redirection_url\":\"https://app.fixerra.in/ekyc\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "ekyc_url should be a valid https URL when present",
              "passed": true,
              "message": "ekyc_url=https://aadhaar-uat.unitybank.co.in/?encPayload=cja3ygGcH2K447gDe3O8mLpX1zFbunf6sEISXKif9bYyyz4diNt3Cvn76sQQl3KD212GfT8yYu6uOx4REuY5XAtkvdTAYndgenceSY%2Fn3GQ8dIEV8Gt%2BkkNj7rk1cLmgPUMdf8DG4d6l81o9JUvArF72CumX%2FWUR6SdcuTc1FPKLM3LLYr9KVhA0nqONUJzXzr7vAFlV8gFwD2fZwUu02%2BdCDU%2BKKtIJMgI0iDiiYU4%3D&encKey=Ppim8lnCjeGybK2VYSNdFZmgJnEv1aNuX8aF09GNAobh15eHDIXEwwTcebms8RE8hg7VzpC8YFTj6GE0fJBSRj0fyj%2BsK8R1H4aXYUxOXwqPRRbrotnn0fCFQd1sh%2BHp7a8qEPSRcdTh6DO08XzcqRV8pHD9Sutl3BVZtgDxO7xoY4Y4pyTdcDr0vFbT904tQWySkCuz4dtnKX4EFIQr5tG4dq5n22MQl0AmTNzx%2FkftRu0yTD7nVyQGv%2Fh8W5PJB8aFHd9CYVVaKpJLQ8CmK0kBJSZD4JG%2B3A5D9pnyqfEzyjI0fK7vpiXDs1BNtz7TETDDjmp0vA52mhAjT30iHQ%3D%3D"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_005",
          "caseName": "[Validation] ekyc_request_id is present and string when ekyc_url is present",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:52.285Z",
          "endedAt": "2026-06-23T11:16:52.429Z",
          "durationMs": 144,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "redirection_url": "https://app.fixerra.in/ekyc",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1569",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:52 GMT",
            "etag": "W/\"621-gERuPgMgq+5nCGjWEn0Pjf1MDRg\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "141",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=2u68PDqV6XuTvukiv8ieWCr4CoKOoHdDmB4yU4OWZCitW7QlbHQHBYo4i4QGgNUV7oCYiHoaVX7ns34ajV6CGpNSP8JQrEaGzerYNf%2BUFA0G3nVCVs1xfUSZW%2B%2BblJpMNAJCqTfLGNFaNT7%2FPb6jt4Yk6R0%2FEi0CsOHJsfzs6W0Gh%2FO5jPef%2BTG34xkeYEdCtcgXlizyi61KUcqiUGjWTBc5O42wWBrwaVzkKRoCSPs%3D&encKey=vjXsuTWLmU7zsRBvbjy%2FUByRs6lUrOGIEdmLCkf%2FfbU6hWimjv9tYbXHnJuBcDs00OmEGcNPvySo2D%2FAL%2BE0dYlyketYlv2kdMGu8h4D8X9TmhYM6AaKkkVdIAYD5YL7hz5PrXnw2WjLDUnmZELk3IpQmJbQXXkZFgMdJVvVltsnfKdBY5xz2sSobHS3OnmFBqixZqx6%2Bx%2FE1mJAr8cv5HJ%2FFY57ACrIXQLIysuO1xLjCdTdEyoX25r1%2FPeb9vaDuz8EGLW4KhB7xyHUW%2Fr3mz6RLz5b1TZ0m%2BR90pb5lxBUfVn2JDNs32N74gpkiSXGX79nReLXdWL3ifLmnjdO1Q%3D%3D",
              "ekyc_request_id": "FI202606231116525370",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"redirection_url\":\"https://app.fixerra.in/ekyc\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "ekyc_request_id present and string when ekyc_url is present",
              "passed": true,
              "message": "ekyc_request_id=FI202606231116525370"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_006",
          "caseName": "[Validation] ekyc_failed is boolean or absent",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "failed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:52.429Z",
          "endedAt": "2026-06-23T11:16:52.575Z",
          "durationMs": 146,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "redirection_url": "https://app.fixerra.in/ekyc",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1577",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:52 GMT",
            "etag": "W/\"629-mMValC1Tb/8lk9aWrUe8DyXrJks\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "142",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=juMCHfdw%2Ft75%2BxF1zC5nhAafh%2BA86d40ah%2FgZ%2BCsGqCr5CIfKxdR23NmqLRU%2FRnAhXh4wyj8yjHYpga%2FYd%2Fcgg5iEw8JjXflZkX0Hi29nzO6MmL%2FEkGIfA7VBoCIltZIYgbIr53fNiPp9krglmyXuWPcQC%2Fr%2FFL85PqcX4DDRNBMZPT6TBVhz0qPPSounU%2Bwwoii2SnTdfPUot33NwPN2%2BRrjIjvKYXviJIbzMULkoU%3D&encKey=oR8%2BsjYQheZLr%2FTR1vxzIOUOFf%2Fw9oiPDgECmNuKmmCp5DP0XRK64GZCSyTfLFBZrHB7IZodgUYilRE50fpxyf%2FzrvVlkf1sYUS6uLOHoUROnMesV3aBuEQ%2FRYhqaTn2SvXXnsN%2FzzNT5BZP3OLmVTIVoBO1GBomOaxeTYMF28jx%2Fe3348AciTXr2KDLHJiaWm8NTSoYK0j1Wl8A8sNRo9ky7rnFGAjbFVTdJnDAELsoGUtS1GVgaZHYFL9jxjzpLMpLp41CubvoA4LRkD9mD7RqTAwHlTI2qXc2GJb1V3NEBQe8897wp6U%2FQXsoEcuDX5oFgdBtIrGPliATbTBVHQ%3D%3D",
              "ekyc_request_id": "FI202606231116529868",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"redirection_url\":\"https://app.fixerra.in/ekyc\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "ekyc_failed should be boolean or absent",
              "passed": false,
              "message": "Expected boolean or absent, got object"
            }
          ],
          "failureReason": "Expected boolean or absent, got object",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_007",
          "caseName": "[Happy] Check status — authenticated user, minimal body",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:52.575Z",
          "endedAt": "2026-06-23T11:16:52.714Z",
          "durationMs": 139,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1511",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:52 GMT",
            "etag": "W/\"5e7-uiQbF9CHr23xxGsyPx5kromSWZg\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "136",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=TZQx2PlOrhv9ZQKMm%2BjQ2pGXsUGeflVnrt%2BuHuB0QNCWV%2BvjPZWRgr3n%2Bl0Q1UABYQThRmYT4sQtOQOYdeoS3P4%2FbqtlHcKcu5LnnirhvSglP%2FRCPlOjlPl5PUP62mJ2Ch3xAOemrfhgTXj0rcsbR%2B1lzVOY0Q0sBJQoXxSLY2Y%3D&encKey=j33CZl0oTJXubHkrM0JbDBjGeNvW4dfNPpMWJ1P26jLrjZA%2BN4fH19HD%2B%2FWMAVPgMoPwCJnJRCipTqkprjCpcQQ1Rga%2FCIjXYVF99LC8BaehOZzLlGsVl7WyUpOsaipR5TuCjyT%2B9vZMOoP0inymgkWZimlb%2FLeSHfKj%2BPGvcFuaDjsUiujdjWLUVuKLUqv3QxonJAUcSaCLVRSCuYR%2FuUG3nMIXERYNodzEPH%2BWr6bkONZiO%2FssTFvbUSmdqYEOo9BFozaCRC6UlobO%2FGtaHWNjFqULp%2BlV2jsqcdFz2p94Y1sL5o%2Ff7iD3ahpJGgvpay1JqMhJ2ZEXsUXHU2IMNA%3D%3D",
              "ekyc_request_id": "FI202606231116523006",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "Payload present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_008",
          "caseName": "[Happy] Check status — with fd_info context, no redirection_url",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:52.714Z",
          "endedAt": "2026-06-23T11:16:52.863Z",
          "durationMs": 149,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1505",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:52 GMT",
            "etag": "W/\"5e1-40lCx/HkixiHiIH6QXSVUD+I7Zo\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "146",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=STSEzTZMYLp8DBXoKDiS3YvHbob8vu%2FBeJAf8S2QPE7HsBlUyHNhhIsKenYgeJtx4EMdHHoqd6mffMob1EXHzqfZmKtqer7Pb8eM1%2BCToGa86zOD3t8ah9iEvmRIcUMimLQ90n4FEVt52vzakBoGqE7dXvE6OdRQLkM05qMlSbs%3D&encKey=uWu9NuVRLOl5PM28jM7TxueEzjnaTvkqplvTVSou2OLU9OMVdslUHOm92te%2FgK0SUq%2FFhzPbCmPGdXr%2FVdBl3EE1FtaOcxlKaVVAJbQcCEzXFFCWfhZlA0nX7zt4OjT9v7zTYAvJUYG%2FOTCLQ9%2BISLinSqYKEPeRm%2FuMxyQvxzRiRtYA%2BAnEz6VX2%2FQXy48FLj7ot%2BPb%2FMuWq2Y3KeNpPcNYX2DqvxaY9lUw%2BSOmo801iM6pmiAv6Pft5%2BVaFIIbkUIVYGfcnAPLUtl%2FVGxdZXmwfmEO2Ru8bV7wIYwEcDZWyK57Uiubbg%2BvL4kXtg%2FUW0GoVOhTxkSiTQQlT7bMvw%3D%3D",
              "ekyc_request_id": "FI202606231116523026",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_009",
          "caseName": "[Happy] Check status — with flow_id=SA (savings account flow)",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:52.863Z",
          "endedAt": "2026-06-23T11:16:53.005Z",
          "durationMs": 142,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "flow_id": "SA",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1493",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"5d5-uuB50qG9VsXwZiQzMpFOX1LIj5M\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "139",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=MEW%2FyiNcra7E61ouvmKvlPTNieLpYzgjwZX2BnCTsexZPdYRooBoMFp0JMICZzfm5snT8u8A6LXPsl3v60rkqqUjjqdjwVuHv2QhzqV1rdTZlMtnksSbI74UhplvomAwI37wYvcBIJnNjj3UX8IJ3ZTSOsaerxJbZldmOjLK%2BTQ%3D&encKey=QmQBzfsJd%2FVQvjzAkJebxApN4wD6ph6eB9VNQ3301DZsiaBJMXPp4ch1ngJhbGeKwydrv9B0Yoko%2F5f6nLmefCiB6JWhojri559%2FDo2cvvR4iblOqyFDuezeiBAMHYkbj7m7BE2pELP7O2IebMoUHuevDH%2BTZt37YqWrAQkkmo8ZtTGSdS7BtFxlYi%2BNwsgwF4U0cdCwyywgUBbxSgkwzVL0JuGWgq57762%2FK%2F3L4LvfU06u1SM%2FFJNxTgUIGWztASZwfYAHmPvcCnPOLZu6O%2Bqvv1VN1G7WHuHsTG0z90UuiGHATHqpObd3eX2D6LV49vQtjfa51lWrQnq9PNGqXw%3D%3D",
              "ekyc_request_id": "FI202606231116524848",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"flow_id\":\"SA\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_010",
          "caseName": "[Auth Error] Check status — no Authorization header",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:53.005Z",
          "endedAt": "2026-06-23T11:16:53.009Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "55",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"37-Vpk+yZYTrfB878bqirsqLrIUy3Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "error": "Access Denied."
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_011",
          "caseName": "[Auth Error] Check status — invalid Bearer token",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:53.009Z",
          "endedAt": "2026-06-23T11:16:53.013Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer invalid.token.here"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "55",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"37-Vpk+yZYTrfB878bqirsqLrIUy3Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "error": "Access Denied."
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.token.here' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_012",
          "caseName": "[Auth Error] Check status — malformed Authorization header",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:53.013Z",
          "endedAt": "2026-06-23T11:16:53.016Z",
          "durationMs": 3,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "NotBearer token123"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "55",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"37-Vpk+yZYTrfB878bqirsqLrIUy3Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "1",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "error": "Access Denied."
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: NotBearer token123' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EKYC_013",
          "caseName": "[Validation] Check status — response has standard Fixerra envelope",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.016Z",
          "endedAt": "2026-06-23T11:16:53.153Z",
          "durationMs": 137,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "1515",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"5eb-GFvBU1IWaAh/1hg+a0BydqCdYEM\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "134",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Success",
            "payload": {
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "is_fixerra_pan_verified": false,
              "is_nsdl_pan_verified": false,
              "is_aml_verified": false,
              "is_ekyc_verified": false,
              "is_personal_data_verified": false,
              "is_vkyc_verified": false,
              "is_email_verified": false,
              "fixerra_pan_verified_at": null,
              "nsdl_pan_verified_at": null,
              "aml_verified_at": null,
              "ekyc_verified_at": null,
              "personal_data_verified_at": null,
              "vkyc_verified_at": null,
              "email_verified_at": null,
              "etb_verified_at": null,
              "f_etb_verified_at": null,
              "is_address_verified_at": null,
              "is_etb": false,
              "is_f_etb": false,
              "is_address_verified": false,
              "created_at": "2026-06-23T11:16:51.000Z",
              "updated_at": "2026-06-23T11:16:51.000Z",
              "ekyc_url": "https://aadhaar-uat.unitybank.co.in/?encPayload=cU%2FS7qfMhaZPQtsvuBVp0ekA3tdeRW40Uuc6yfZ%2BpNYmiJ4njh3PFIyzILIsJSfu%2FXen5dT6uYDxrM0%2FkWCSxYdOg6oPEwDhUXJ2994l37SJX3h520BDI4Kf84mKZFvcSyhBXTiiOfE8Fi%2BPbVuEmIq8UVT6zVKNogXLkaX7Y2M%3D&encKey=ofuw55rJszFVuDRTvnjG5HFQgiwI8hbMKa1%2BJ%2FRH0CX7C9I%2FpIhXNeVB%2BRTRVmY7lOzkIh8P7VDlOnLok%2BfSlhwjytnpQQD7Q8E43OPN7aO0fgaO%2BMFKmKel3t4Wl%2FyivmV9pYGDxs8FA9GCjbffUSjKGEipyzJfl%2BMMCc3b2TqS0eUoTyrU4dDEUIY87Il9Ty0Ry95ARVSBNj1dla7mqwvGOID3r%2BqCpDDL%2BT%2BMt9eYJ4rjg%2Fp5DK3Z361S%2FNALN4sGoffU04Yc0kt64pIRNeSO5zS5RAs5%2FUbwiQxjTxpHZNIxwvjB57u%2BkC8MnYsvvP%2FFuxbM7I2WXGhP%2F0ry9w%3D%3D",
              "ekyc_request_id": "FI202606231116536979",
              "vkyc_url": null,
              "vkyc_session_id": null,
              "vkyc_status": null,
              "ekyc_failed": null,
              "is_name_verified": null,
              "is_dob_verified": null
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v3/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response envelope has success + statusCode fields",
              "passed": true,
              "message": "Standard Fixerra envelope present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        }
      ],
      "summary": {
        "total": 13,
        "passed": 12,
        "failed": 1,
        "skipped": 0,
        "running": 0,
        "pending": 0,
        "durationMs": 1668
      }
    },
    {
      "stepId": "unity-step-05-personal-details",
      "stepName": "Email / Personal Details",
      "cases": [
        {
          "caseId": "UNITY_EMAIL_001",
          "caseName": "Verify OTP sent to valid email (Unity / USFB user)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.153Z",
          "endedAt": "2026-06-23T11:16:53.668Z",
          "durationMs": 515,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "179",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"b3-0nO0im0xvnih6iFNQlbPSeWssms\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "503",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Email sent successfully",
            "payload": {
              "startTime": 1782213413204,
              "endTime": 1782213413642,
              "durationMs": 438,
              "otpSentCount": 1,
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "statusCode=200"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "message=\"Email sent successfully\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_002",
          "caseName": "Verify response status code",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.668Z",
          "endedAt": "2026-06-23T11:16:53.682Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"e0-9I0dx43bP1vjARF5Tk4kiLEuIeE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_003",
          "caseName": "Verify success flag",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.682Z",
          "endedAt": "2026-06-23T11:16:53.727Z",
          "durationMs": 45,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"e0-9I0dx43bP1vjARF5Tk4kiLEuIeE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "42",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_004",
          "caseName": "Verify success message",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.727Z",
          "endedAt": "2026-06-23T11:16:53.738Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_005",
          "caseName": "Verify payload object exists",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.738Z",
          "endedAt": "2026-06-23T11:16:53.750Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_006",
          "caseName": "Verify startTime returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.750Z",
          "endedAt": "2026-06-23T11:16:53.762Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.startTime should be numeric",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_007",
          "caseName": "Verify endTime returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.762Z",
          "endedAt": "2026-06-23T11:16:53.830Z",
          "durationMs": 68,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "65",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.endTime should be numeric",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_008",
          "caseName": "Verify durationMs returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.830Z",
          "endedAt": "2026-06-23T11:16:53.842Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.durationMs should be numeric",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response should complete within 5000ms",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_009",
          "caseName": "Verify otpSentCount returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.842Z",
          "endedAt": "2026-06-23T11:16:53.855Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.otpSentCount should be numeric",
              "passed": true,
              "message": "payload.otpSentCount=1"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_010",
          "caseName": "Verify attemptsUsed returned",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.856Z",
          "endedAt": "2026-06-23T11:16:53.931Z",
          "durationMs": 75,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.attemptsUsed should be numeric",
              "passed": true,
              "message": "payload.attemptsUsed=0"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_011",
          "caseName": "Verify OTP send with valid fd_info",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.931Z",
          "endedAt": "2026-06-23T11:16:53.943Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"issuer\":{\"f_code\":\"USFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"USFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_012",
          "caseName": "Verify OTP send with invalid fd_info",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:53.943Z",
          "endedAt": "2026-06-23T11:16:54.031Z",
          "durationMs": 88,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "NOT_JSON"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:53 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"NOT_JSON\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_013",
          "caseName": "Verify OTP send without fd_info",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:54.031Z",
          "endedAt": "2026-06-23T11:16:54.043Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_014",
          "caseName": "Verify otpSentCount increments on resend",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:54.043Z",
          "endedAt": "2026-06-23T11:16:54.058Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"c4-Wc7nxBHvdGMCE3hNoExM1RK7saE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 1,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1799
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "payload.otpSentCount should be numeric",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "payload.otpSentCount should increase on resend",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_015",
          "caseName": "Verify missing email validation",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.058Z",
          "endedAt": "2026-06-23T11:16:54.070Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_016",
          "caseName": "Verify null email validation",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.070Z",
          "endedAt": "2026-06-23T11:16:54.129Z",
          "durationMs": 59,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": null
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "56",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":null}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_017",
          "caseName": "Verify empty email validation",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.129Z",
          "endedAt": "2026-06-23T11:16:54.147Z",
          "durationMs": 18,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": ""
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_018",
          "caseName": "Verify invalid email without @",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.147Z",
          "endedAt": "2026-06-23T11:16:54.157Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "userdomain.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"userdomain.com\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_019",
          "caseName": "Verify email with multiple @",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.158Z",
          "endedAt": "2026-06-23T11:16:54.226Z",
          "durationMs": 68,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@@b.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "65",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@@b.com\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_020",
          "caseName": "Verify email missing domain",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.226Z",
          "endedAt": "2026-06-23T11:16:54.248Z",
          "durationMs": 22,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "test@"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "18",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"test@\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_021",
          "caseName": "Verify email missing TLD",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.248Z",
          "endedAt": "2026-06-23T11:16:54.273Z",
          "durationMs": 25,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@b"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "22",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@b\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_022",
          "caseName": "Verify email with leading dot domain",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.274Z",
          "endedAt": "2026-06-23T11:16:54.329Z",
          "durationMs": 55,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "52",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@.com\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_023",
          "caseName": "Verify email with double dot domain",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.329Z",
          "endedAt": "2026-06-23T11:16:54.342Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@b..com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@b..com\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_024",
          "caseName": "Verify leading whitespace email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.342Z",
          "endedAt": "2026-06-23T11:16:54.440Z",
          "durationMs": 98,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": " qa@test.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "94",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\" qa@test.com\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_025",
          "caseName": "Verify trailing whitespace email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.440Z",
          "endedAt": "2026-06-23T11:16:54.526Z",
          "durationMs": 86,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "qa@test.com "
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"qa@test.com \"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_026",
          "caseName": "Verify numeric email value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.527Z",
          "endedAt": "2026-06-23T11:16:54.544Z",
          "durationMs": 17,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": 123
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":123}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_027",
          "caseName": "Verify boolean email value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.544Z",
          "endedAt": "2026-06-23T11:16:54.634Z",
          "durationMs": 90,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": true
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "87",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_028",
          "caseName": "Verify array email value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.634Z",
          "endedAt": "2026-06-23T11:16:54.646Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": []
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":[]}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_029",
          "caseName": "Verify object email value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.646Z",
          "endedAt": "2026-06-23T11:16:54.657Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": {}
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":{}}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_030",
          "caseName": "Verify uppercase email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:54.657Z",
          "endedAt": "2026-06-23T11:16:54.939Z",
          "durationMs": 282,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "DILIP@FIXERRA.INN"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "179",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"b3-B1Acn0X+T+l+YxUlrv434C5tVG0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "279",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Email sent successfully",
            "payload": {
              "startTime": 1782213414759,
              "endTime": 1782213414903,
              "durationMs": 144,
              "otpSentCount": 2,
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"DILIP@FIXERRA.INN\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "message=\"Email sent successfully\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_031",
          "caseName": "Verify mixed-case email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:54.939Z",
          "endedAt": "2026-06-23T11:16:54.952Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "Dilip@Fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"e0-D0of8+xjimHJ8f1g7N1qJgxu0fs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"Dilip@Fixerra.inn\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_032",
          "caseName": "Verify maximum valid email length",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:54.952Z",
          "endedAt": "2026-06-23T11:16:54.970Z",
          "durationMs": 18,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:54 GMT",
            "etag": "W/\"e0-D0of8+xjimHJ8f1g7N1qJgxu0fs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_033",
          "caseName": "Verify oversized email length",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:54.970Z",
          "endedAt": "2026-06-23T11:16:55.036Z",
          "durationMs": 66,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "62",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com\"}'",
          "validations": [
            {
              "description": "Response should indicate validation failure",
              "passed": true,
              "message": "Oversized email rejected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_034",
          "caseName": "Verify empty JSON body",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:55.036Z",
          "endedAt": "2026-06-23T11:16:55.046Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Body statusCode should be 400",
              "passed": true,
              "message": "statusCode=400"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error envelope present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_EMAIL_035",
          "caseName": "Verify extra unsupported field",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.046Z",
          "endedAt": "2026-06-23T11:16:55.129Z",
          "durationMs": 83,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "random_field": "allowed-for-now"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"e0-D0of8+xjimHJ8f1g7N1qJgxu0fs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "80",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"random_field\":\"allowed-for-now\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_036",
          "caseName": "Verify fd_info null",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.129Z",
          "endedAt": "2026-06-23T11:16:55.142Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": null
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"e0-D0of8+xjimHJ8f1g7N1qJgxu0fs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":null}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_037",
          "caseName": "Verify fd_info empty string",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.142Z",
          "endedAt": "2026-06-23T11:16:55.156Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn",
            "fd_info": ""
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"e0-D0of8+xjimHJ8f1g7N1qJgxu0fs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            },
            {
              "description": "Response message should be \"Email sent successfully\"",
              "passed": true,
              "message": "OTP rate-limited by API (acceptable on repeated sends)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_038",
          "caseName": "Verify rate limit handling",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 429,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.156Z",
          "endedAt": "2026-06-23T11:16:55.351Z",
          "durationMs": 195,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"c4-1pnyYQVA1DJgxU5XrmQBbTOlYgk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1797
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 5 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 5 requests succeeded with HTTP 200/201/400"
            },
            {
              "description": "Average response time across burst should stay under 5000ms",
              "passed": true,
              "message": "Average duration 39ms across 5 requests"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_039",
          "caseName": "Verify retryAfter field",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 429,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.351Z",
          "endedAt": "2026-06-23T11:16:55.556Z",
          "durationMs": 205,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"c4-1pnyYQVA1DJgxU5XrmQBbTOlYgk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1797
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 5 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 5 requests succeeded with HTTP 200/201/400"
            },
            {
              "description": "retryAfter metadata should be present when API rate-limits",
              "passed": true,
              "message": "Rate-limit response exposed retry metadata or payload"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_040",
          "caseName": "Verify retryAfterSeconds field",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 429,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.556Z",
          "endedAt": "2026-06-23T11:16:55.680Z",
          "durationMs": 124,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"c4-1pnyYQVA1DJgxU5XrmQBbTOlYgk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1797
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "No request in the burst should return a 5xx or network error",
              "passed": true,
              "message": "All 5 requests completed without 5xx/network errors"
            },
            {
              "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
              "passed": true,
              "message": "No rate limiting enforced — all 5 requests succeeded with HTTP 200/201/400"
            },
            {
              "description": "retryAfterSeconds metadata should be present when API rate-limits",
              "passed": true,
              "message": "Rate-limit response exposed retryAfterSeconds metadata or payload"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_041",
          "caseName": "Verify email provider failure",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.680Z",
          "endedAt": "2026-06-23T11:16:55.736Z",
          "durationMs": 56,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"c4-1pnyYQVA1DJgxU5XrmQBbTOlYgk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "53",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 2,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1797
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Email provider path should return a controlled response",
              "passed": true,
              "message": "Handled provider response (HTTP 201, body.statusCode=429)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_042",
          "caseName": "Verify API without JWT",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:55.736Z",
          "endedAt": "2026-06-23T11:16:55.743Z",
          "durationMs": 7,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "email": "qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            },
            {
              "description": "Body statusCode should be 401",
              "passed": true,
              "message": "statusCode=401"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_043",
          "caseName": "Verify API with invalid JWT",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:55.743Z",
          "endedAt": "2026-06-23T11:16:55.748Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer bad.jwt"
          },
          "requestPayload": {
            "email": "qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt' \\\n  -d '{\"email\":\"qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            },
            {
              "description": "Body statusCode should be 401",
              "passed": true,
              "message": "statusCode=401"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_044",
          "caseName": "Verify API with expired JWT",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:55.748Z",
          "endedAt": "2026-06-23T11:16:55.755Z",
          "durationMs": 7,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestPayload": {
            "email": "qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token' \\\n  -d '{\"email\":\"qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            },
            {
              "description": "Body statusCode should be 401",
              "passed": true,
              "message": "statusCode=401"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_045",
          "caseName": "Verify API with empty Authorization header",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:55.755Z",
          "endedAt": "2026-06-23T11:16:55.760Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer"
          },
          "requestPayload": {
            "email": "qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer' \\\n  -d '{\"email\":\"qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            },
            {
              "description": "Body statusCode should be 401",
              "passed": true,
              "message": "statusCode=401"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_046",
          "caseName": "Verify API with malformed token",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:16:55.760Z",
          "endedAt": "2026-06-23T11:16:55.831Z",
          "durationMs": 71,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Invalid Bearer format"
          },
          "requestPayload": {
            "email": "qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:55 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Invalid Bearer format' \\\n  -d '{\"email\":\"qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK"
            },
            {
              "description": "Body statusCode should be 401",
              "passed": true,
              "message": "statusCode=401"
            },
            {
              "description": "Response success flag should be 0",
              "passed": true,
              "message": "success=0"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_047",
          "caseName": "Verify response content type",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:55.831Z",
          "endedAt": "2026-06-23T11:16:56.070Z",
          "durationMs": 239,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "179",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"b3-Zqc9l345f3PsFym53SKgBLFyf3o\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "236",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Email sent successfully",
            "payload": {
              "startTime": 1782213415888,
              "endTime": 1782213416033,
              "durationMs": 145,
              "otpSentCount": 3,
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Response content type should be application/json",
              "passed": true,
              "message": "application/json response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_048",
          "caseName": "Verify required response headers",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:56.070Z",
          "endedAt": "2026-06-23T11:16:56.083Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"e0-O8U4RFV/tsaa8lMiYsBAEUXG3Cg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 3,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Required response headers should be present",
              "passed": true,
              "message": "Required response headers present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_049",
          "caseName": "Verify response does not leak email value",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:16:56.083Z",
          "endedAt": "2026-06-23T11:16:56.098Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"e0-O8U4RFV/tsaa8lMiYsBAEUXG3Cg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 3,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Response should not expose sensitive request values",
              "passed": true,
              "message": "No sensitive request values leaked in response body"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_900A",
          "caseName": "Verify email OTP (Unity / USFB user)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:56.098Z",
          "endedAt": "2026-06-23T11:16:56.152Z",
          "durationMs": 54,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "123456",
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "50",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "OTP verified but insights event_id unavailable in isolated run (FIXINSIGHT1352, acceptable)"
            },
            {
              "description": "Body statusCode should be 200",
              "passed": true,
              "message": "OTP verified but insights event_id unavailable in isolated run (FIXINSIGHT1352, acceptable)"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "OTP verified but insights event_id unavailable in isolated run (FIXINSIGHT1352, acceptable)"
            },
            {
              "description": "Response message should be \"Email verified successfully\"",
              "passed": true,
              "message": "OTP verified but insights event_id unavailable in isolated run (FIXINSIGHT1352, acceptable)"
            },
            {
              "description": "payload.attemptsUsed should be present",
              "passed": true,
              "message": "OTP verified but insights event_id unavailable in isolated run (FIXINSIGHT1352, acceptable)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_900",
          "caseName": "Save email to user profile (Unity / USFB user)",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:56.152Z",
          "endedAt": "2026-06-23T11:16:56.392Z",
          "durationMs": 240,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1661",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"67d-BzrOzGePC264WJ9GllrLfQK1Iig\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "237",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "dilip@fixerra.inn",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:56.000Z",
              "profile_updated_at": "2026-06-23T11:16:56.251Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Body statusCode should be 201 or 200",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response should confirm user update",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_EMAIL_901",
          "caseName": "Get user to confirm email state (Unity / USFB user)",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:56.392Z",
          "endedAt": "2026-06-23T11:16:56.927Z",
          "durationMs": 535,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1615",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"64f-wPz6CSmxpgYWKNASuDt8VUcDhto\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "532",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "dilip@fixerra.inn",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "918668336629",
              "code": "91",
              "dob": null,
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:56.000Z",
              "profile_updated_at": "2026-06-23T11:16:56.000Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "usfb": {
                "dob": "1992-04-30",
                "father_name": "KALU NATHU RATHOD",
                "email": "dilip@fixerra.inn",
                "is_email_verified": true,
                "full_name": "DILIP KALU RATHOD"
              },
              "is_personal_details": {
                "BAJ": false,
                "MAH": false,
                "SHRI": false
              }
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "User should have email field",
              "passed": true,
              "message": "email=dilip@fixerra.inn"
            },
            {
              "description": "Email verification flag should be true when available",
              "passed": true,
              "message": "Email verification state is acceptable"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_001",
          "caseName": "Get dropdown options for personal info form (Unity / USFB)",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user/dropdown",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:56.927Z",
          "endedAt": "2026-06-23T11:16:56.946Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "526",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:56 GMT",
            "etag": "W/\"20e-YqUCbnMbboHrP/2SAuX85Qu+uWc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "17",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "occupations": {
                "Business": [
                  "Business"
                ],
                "Others": [
                  "Professional",
                  "Self Employed",
                  "Retired",
                  "Housewife",
                  "Student",
                  "Not Categorized",
                  "Agriculture",
                  "Others"
                ],
                "Service": [
                  "Public Sector",
                  "Private Sector",
                  "Government Sector",
                  "Salaried"
                ]
              },
              "annualIncomes": [
                "Upto 5L Per Annum",
                "5L - 10L Per Annum",
                "10 - 15L Per Annum",
                "10L - 15L Per Annum",
                "15L - 25L Per Annum",
                "25L - 50L Per Annum",
                "50L - 1Cr Per Annum",
                "1Cr and Above"
              ],
              "maritalStatus": [
                "Married",
                "Unmarried",
                "Others"
              ]
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user/dropdown' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=200"
            },
            {
              "description": "Response should contain dropdown options",
              "passed": true,
              "message": "Dropdown options present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_DROPDOWN.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_002",
          "caseName": "Save personal details for Unity / USFB user",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:56.946Z",
          "endedAt": "2026-06-23T11:16:57.202Z",
          "durationMs": 256,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:57 GMT",
            "etag": "W/\"687-rNZugeWAx+xlfC8Meek2G8Ee7m0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "252",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:57.061Z",
              "profile_updated_at": "2026-06-23T11:16:57.061Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_003",
          "caseName": "Verify personal-details response content type",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:57.202Z",
          "endedAt": "2026-06-23T11:16:57.358Z",
          "durationMs": 156,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.contenttype@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1677",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:57 GMT",
            "etag": "W/\"68d-7YYKdUocnuJv+gjymG/5QtkqwUA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "152",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.contenttype@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:57.239Z",
              "profile_updated_at": "2026-06-23T11:16:57.239Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.contenttype@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response content type should be application/json",
              "passed": true,
              "message": "content-type=application/json; charset=utf-8"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_004",
          "caseName": "Verify personal-details response time",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:57.358Z",
          "endedAt": "2026-06-23T11:16:57.486Z",
          "durationMs": 128,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.responsetime@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1678",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:57 GMT",
            "etag": "W/\"68e-+QZYm9gyaK2n6Ycd6axTRUwWIKU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "125",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.responsetime@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:57.389Z",
              "profile_updated_at": "2026-06-23T11:16:57.389Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.responsetime@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response should complete within 2000ms",
              "passed": true,
              "message": "duration=128ms"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_005",
          "caseName": "Verify all query parameters accepted",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:57.486Z",
          "endedAt": "2026-06-23T11:16:57.597Z",
          "durationMs": 111,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.query@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "bank_code": "true",
            "credit_card": "false",
            "bank_change_request": "false",
            "account_holder_name": "JOHN DOE"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:57 GMT",
            "etag": "W/\"687-yw3I9l/xan4HPCU+fRe3pD6vyTw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "107",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.query@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:57.518Z",
              "profile_updated_at": "2026-06-23T11:16:57.518Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&bank_code=true&credit_card=false&bank_change_request=false&account_holder_name=JOHN+DOE' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.query@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_006",
          "caseName": "Verify USFB BANK issuer flow",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:57.597Z",
          "endedAt": "2026-06-23T11:16:57.788Z",
          "durationMs": 191,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.usfb@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1670",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:57 GMT",
            "etag": "W/\"686-vnG4xMBUVJDlv3TJDmQIlftaKnQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "188",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.usfb@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:57.652Z",
              "profile_updated_at": "2026-06-23T11:16:57.653Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.usfb@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_007",
          "caseName": "Verify SSFB BANK issuer flow",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:57.788Z",
          "endedAt": "2026-06-23T11:16:57.982Z",
          "durationMs": 194,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.ssfb@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1670",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:57 GMT",
            "etag": "W/\"686-TVo1p5kXiRPUXa07MUrXrSjqHnw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "189",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.ssfb@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:57.853Z",
              "profile_updated_at": "2026-06-23T11:16:57.853Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.ssfb@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_008",
          "caseName": "Verify AUSFB BANK issuer flow",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:57.982Z",
          "endedAt": "2026-06-23T11:16:58.155Z",
          "durationMs": 173,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.ausfb@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "AUSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"687-CY5koBa7dmbR7mclYTJ4PBSXaZ8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "170",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.ausfb@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:58.037Z",
              "profile_updated_at": "2026-06-23T11:16:58.037Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=AUSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.ausfb@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_009",
          "caseName": "Verify IIB BANK issuer flow",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:58.155Z",
          "endedAt": "2026-06-23T11:16:58.294Z",
          "durationMs": 139,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.iib@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "IIB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1669",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"685-y4UKnBZ77vvBJBu8/m1THdtSlXA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "136",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.iib@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:58.188Z",
              "profile_updated_at": "2026-06-23T11:16:58.188Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=IIB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.iib@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_011",
          "caseName": "Verify unsupported BANK issuer",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 500,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:58.294Z",
          "endedAt": "2026-06-23T11:16:58.328Z",
          "durationMs": 34,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.unsupported.bank@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "BAJ",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "384",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"180-JTEdrBrtw/ZwbX1ZqL7o40JEJE4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "30",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "Failed to update user details",
            "payload": {
              "email": "personal.unsupported.bank@fixerra.test",
              "occupation": "Salaried",
              "annual_income": "15L - 25L Per Annum",
              "marital_status": "Unmarried",
              "mother_name": "TEST MOTHER",
              "father_name": "TEST FATHER",
              "education": "Graduate",
              "source_of_income": "Salary",
              "partner_url": "https://tradingquants.dev.fixerra.in"
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.unsupported.bank@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 500",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=500"
            },
            {
              "description": "Response message should be \"Failed to update user details\"",
              "passed": true,
              "message": "message=\"Failed to update user details\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_012",
          "caseName": "Verify NBFC issuer flow",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:58.328Z",
          "endedAt": "2026-06-23T11:16:58.362Z",
          "durationMs": 34,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.nbfc@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "NBFC"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "0",
            "content-security-policy": "default-src 'self'",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "31",
            "server": "envoy"
          },
          "responseBody": "",
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=NBFC' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.nbfc@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "NBFC issuer branch should return the current no-op response shape",
              "passed": true,
              "message": "NBFC branch returned empty 200 body"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_013",
          "caseName": "Verify credit_card=true query param",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:58.362Z",
          "endedAt": "2026-06-23T11:16:58.548Z",
          "durationMs": 186,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.creditcard.true@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1681",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"691-OI6rex2OasZ3A/PYD5OE2yK0to4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "182",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.creditcard.true@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:58.432Z",
              "profile_updated_at": "2026-06-23T11:16:58.432Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.creditcard.true@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_014",
          "caseName": "Verify credit_card=false query param",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:58.548Z",
          "endedAt": "2026-06-23T11:16:58.683Z",
          "durationMs": 135,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.creditcard.false@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1682",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"692-VKMVl9BUL6cE7fk3HHSpyIzE6Xs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "132",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "personal.creditcard.false@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:58.575Z",
              "profile_updated_at": "2026-06-23T11:16:58.575Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.creditcard.false@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_015",
          "caseName": "Verify invalid credit_card query param",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:58.684Z",
          "endedAt": "2026-06-23T11:16:58.727Z",
          "durationMs": 43,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "personal.creditcard.invalid@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "maybe"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "39",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=maybe' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"personal.creditcard.invalid@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_016",
          "caseName": "Verify valid email update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:58.727Z",
          "endedAt": "2026-06-23T11:16:58.880Z",
          "durationMs": 153,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "valid.email@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1668",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"684-iM02UX9SFJQf6s0isldJ4f2vLEM\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "150",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:56.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "valid.email@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:58.754Z",
              "profile_updated_at": "2026-06-23T11:16:58.754Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"valid.email@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_019",
          "caseName": "Verify invalid email format",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:58.880Z",
          "endedAt": "2026-06-23T11:16:58.928Z",
          "durationMs": 48,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "emailwithoutat",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "43",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"emailwithoutat\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_PI_020",
          "caseName": "Verify email missing domain",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:58.928Z",
          "endedAt": "2026-06-23T11:16:58.943Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "test@",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"test@\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_PI_021",
          "caseName": "Verify email missing username",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:58.944Z",
          "endedAt": "2026-06-23T11:16:58.957Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "@gmail.com",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:58 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"@gmail.com\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_PI_022",
          "caseName": "Verify email with multiple @",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:58.957Z",
          "endedAt": "2026-06-23T11:16:59.031Z",
          "durationMs": 74,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "test@@mail.com",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "70",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"test@@mail.com\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1002",
              "passed": true,
              "message": "FIXUSER1002 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "UNITY_PI_023",
          "caseName": "Verify null email",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:59.031Z",
          "endedAt": "2026-06-23T11:16:59.205Z",
          "durationMs": 174,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": null,
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1646",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"66e-Py19knqXGg9DoQ3RuSpT1xqGOco\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "170",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:59.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:59.000Z",
              "profile_updated_at": "2026-06-23T11:16:59.148Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":null,\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_024",
          "caseName": "Verify empty email",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:59.205Z",
          "endedAt": "2026-06-23T11:16:59.300Z",
          "durationMs": 95,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1644",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"66c-P0KjPVx9nlSaouDeS5OZEdcZ8d8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "92",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:59.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:59.000Z",
              "profile_updated_at": "2026-06-23T11:16:59.240Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_025",
          "caseName": "Verify valid PAN update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.300Z",
          "endedAt": "2026-06-23T11:16:59.330Z",
          "durationMs": 30,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": "ABCPE1234F"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "26",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"ABCPE1234F\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_026",
          "caseName": "Verify PAN lowercase validation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.330Z",
          "endedAt": "2026-06-23T11:16:59.343Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": "abcde1234f"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"abcde1234f\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PI_027",
          "caseName": "Verify PAN with special characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.343Z",
          "endedAt": "2026-06-23T11:16:59.356Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": "ABC@E1234F"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"ABC@E1234F\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PI_028",
          "caseName": "Verify PAN length less than 10",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.356Z",
          "endedAt": "2026-06-23T11:16:59.368Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": "ABC123"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"ABC123\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PI_029",
          "caseName": "Verify PAN length greater than 10",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.368Z",
          "endedAt": "2026-06-23T11:16:59.431Z",
          "durationMs": 63,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": "ABCDE1234FF"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "60",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"ABCDE1234FF\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_PI_030",
          "caseName": "Verify null PAN",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.431Z",
          "endedAt": "2026-06-23T11:16:59.451Z",
          "durationMs": 20,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": null
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "16",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":null}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_031",
          "caseName": "Verify empty PAN",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.451Z",
          "endedAt": "2026-06-23T11:16:59.464Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": ""
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_032",
          "caseName": "Verify valid DOB update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.464Z",
          "endedAt": "2026-06-23T11:16:59.533Z",
          "durationMs": 69,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": "1995-08-30"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "65",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":\"1995-08-30\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_033",
          "caseName": "Verify future DOB validation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.533Z",
          "endedAt": "2026-06-23T11:16:59.549Z",
          "durationMs": 16,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": "2099-01-01"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "194",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"c2-ue3VX43dASmbpm+YepGpr2KuIH4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "13",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1094",
                "error": "Date of birth cannot be in the future"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":\"2099-01-01\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1094",
              "passed": true,
              "message": "FIXUSER1094 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1094"
          ],
          "actualErrorCodes": [
            "FIXUSER1094"
          ]
        },
        {
          "caseId": "UNITY_PI_034",
          "caseName": "Verify underage DOB validation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.550Z",
          "endedAt": "2026-06-23T11:16:59.562Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": "2012-01-01"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "251",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"fb-cPC0LS13kONH8e+s+M6F4epE/5Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1095",
                "error": "We appreciate your interest, FD can only be applied for individuals who are 18 years and above"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":\"2012-01-01\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1095",
              "passed": true,
              "message": "FIXUSER1095 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1095"
          ],
          "actualErrorCodes": [
            "FIXUSER1095"
          ]
        },
        {
          "caseId": "UNITY_PI_035",
          "caseName": "Verify invalid DOB format",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.562Z",
          "endedAt": "2026-06-23T11:16:59.629Z",
          "durationMs": 67,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": "not-a-date"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "63",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":\"not-a-date\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1004",
              "passed": true,
              "message": "FIXUSER1004 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1004"
          ],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "UNITY_PI_036",
          "caseName": "Verify null DOB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.629Z",
          "endedAt": "2026-06-23T11:16:59.643Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": null
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":null}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_037",
          "caseName": "Verify empty DOB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.643Z",
          "endedAt": "2026-06-23T11:16:59.735Z",
          "durationMs": 92,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": ""
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "87",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "UNITY_PI_038",
          "caseName": "Verify age exactly 18 years",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.735Z",
          "endedAt": "2026-06-23T11:16:59.745Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "dob": "2006-01-01"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"dob\":\"2006-01-01\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_039",
          "caseName": "Verify valid occupation update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:59.745Z",
          "endedAt": "2026-06-23T11:16:59.892Z",
          "durationMs": 147,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"687-/gDU3EHkOSE55/Y8xx4fRb6/xqk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "143",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:59.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:16:59.775Z",
              "profile_updated_at": "2026-06-23T11:16:59.775Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_040",
          "caseName": "Verify invalid occupation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:16:59.892Z",
          "endedAt": "2026-06-23T11:16:59.931Z",
          "durationMs": 39,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "Astronaut",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "347",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:16:59 GMT",
            "etag": "W/\"15b-XKNh0tvxkzqFmM3b3KRtlnMv4Z4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "36",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1079",
                "error": "Invalid Occupation Code. valid values are: Business,Professional,Self Employed,Retired,Housewife,Student,Not Categorized,Agriculture,Public Sector,Private Sector,Government Sector,Salaried\n"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"Astronaut\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1079",
              "passed": true,
              "message": "FIXUSER1079 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1079"
          ],
          "actualErrorCodes": [
            "FIXUSER1079"
          ]
        },
        {
          "caseId": "UNITY_PI_041",
          "caseName": "Verify null occupation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:16:59.931Z",
          "endedAt": "2026-06-23T11:17:00.384Z",
          "durationMs": 453,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": null,
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"687-XEipwXITjLAB+duTWIyLw1AetGM\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "449",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:16:59.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:16:59.959Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":null,\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_042",
          "caseName": "Verify empty occupation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:00.384Z",
          "endedAt": "2026-06-23T11:17:00.431Z",
          "durationMs": 47,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "347",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"15b-XKNh0tvxkzqFmM3b3KRtlnMv4Z4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "17",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1079",
                "error": "Invalid Occupation Code. valid values are: Business,Professional,Self Employed,Retired,Housewife,Student,Not Categorized,Agriculture,Public Sector,Private Sector,Government Sector,Salaried\n"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1079",
              "passed": true,
              "message": "FIXUSER1079 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1079"
          ],
          "actualErrorCodes": [
            "FIXUSER1079"
          ]
        },
        {
          "caseId": "UNITY_PI_043",
          "caseName": "Verify valid annual income update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:00.431Z",
          "endedAt": "2026-06-23T11:17:00.590Z",
          "durationMs": 159,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"687-TtIo/SpKavS95OPuMSet7EAybu4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "156",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:00.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:00.474Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_044",
          "caseName": "Verify invalid annual income",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:00.590Z",
          "endedAt": "2026-06-23T11:17:00.603Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "999L",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "184",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"b8-ZR98rvnT+yD4+xlWjy2txAP5Zkk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1053",
                "error": "Annual Income Invalid Value"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"999L\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1053",
              "passed": true,
              "message": "FIXUSER1053 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1053"
          ],
          "actualErrorCodes": [
            "FIXUSER1053"
          ]
        },
        {
          "caseId": "UNITY_PI_045",
          "caseName": "Verify empty annual income",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:00.603Z",
          "endedAt": "2026-06-23T11:17:00.622Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "184",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"b8-ZR98rvnT+yD4+xlWjy2txAP5Zkk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1053",
                "error": "Annual Income Invalid Value"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1053",
              "passed": true,
              "message": "FIXUSER1053 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1053"
          ],
          "actualErrorCodes": [
            "FIXUSER1053"
          ]
        },
        {
          "caseId": "UNITY_PI_046",
          "caseName": "Verify valid marital status update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:00.622Z",
          "endedAt": "2026-06-23T11:17:00.741Z",
          "durationMs": 119,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Married",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"687-sk1Gfi7FAMZhan630VHV7g0YOI0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "116",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:00.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:00.653Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Married\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_047",
          "caseName": "Verify invalid marital status",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:00.741Z",
          "endedAt": "2026-06-23T11:17:00.831Z",
          "durationMs": 90,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Single",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "219",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"db-/DRG/0/5hDwju6lTlit6aF7u/0A\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1007",
                "error": "Invalid marital status. Valid values: Married,Unmarried,Others"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Single\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1007",
              "passed": true,
              "message": "FIXUSER1007 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1007"
          ],
          "actualErrorCodes": [
            "FIXUSER1007"
          ]
        },
        {
          "caseId": "UNITY_PI_048",
          "caseName": "Verify null marital status",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:00.831Z",
          "endedAt": "2026-06-23T11:17:00.989Z",
          "durationMs": 158,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": null,
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:00 GMT",
            "etag": "W/\"687-QLkVtuWPv7atVCbXWolIrNPB6ec\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "154",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:00.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:00.865Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":null,\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_049",
          "caseName": "Verify empty marital status",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:00.989Z",
          "endedAt": "2026-06-23T11:17:01.037Z",
          "durationMs": 48,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "219",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:01 GMT",
            "etag": "W/\"db-/DRG/0/5hDwju6lTlit6aF7u/0A\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "44",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1007",
                "error": "Invalid marital status. Valid values: Married,Unmarried,Others"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1007",
              "passed": true,
              "message": "FIXUSER1007 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1007"
          ],
          "actualErrorCodes": [
            "FIXUSER1007"
          ]
        },
        {
          "caseId": "UNITY_PI_050",
          "caseName": "Verify valid mother name update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:01.037Z",
          "endedAt": "2026-06-23T11:17:01.254Z",
          "durationMs": 217,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:01 GMT",
            "etag": "W/\"687-fbdtkjG91tSN0/8/Ac1MuLSkRic\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "214",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:01.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:01.069Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_051",
          "caseName": "Verify blank mother name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:01.254Z",
          "endedAt": "2026-06-23T11:17:01.296Z",
          "durationMs": 42,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": " ",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:01 GMT",
            "etag": "W/\"c4-DFfsagkfP26qOQJeFRxFCh+YjvU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "38",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1264",
                "error": "mother name cant be just an empty space"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\" \",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1264",
              "passed": true,
              "message": "FIXUSER1264 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1264"
          ],
          "actualErrorCodes": [
            "FIXUSER1264"
          ]
        },
        {
          "caseId": "UNITY_PI_052",
          "caseName": "Verify null mother name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:01.296Z",
          "endedAt": "2026-06-23T11:17:01.627Z",
          "durationMs": 331,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": null,
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:01 GMT",
            "etag": "W/\"687-ToU+lc7ht9ZZ1yFZAtPRbIstY38\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "328",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:01.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:01.373Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":null,\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_053",
          "caseName": "Verify mother name with numeric characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:01.627Z",
          "endedAt": "2026-06-23T11:17:01.686Z",
          "durationMs": 59,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "MOTHER123",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:01 GMT",
            "etag": "W/\"d2-qwLJDVJ/p1rrp9cJc0bh6UPHGaY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "56",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1265",
                "error": "Invalid mother name, please enter a valid mother name"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"MOTHER123\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1265",
              "passed": true,
              "message": "FIXUSER1265 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1265"
          ],
          "actualErrorCodes": [
            "FIXUSER1265"
          ]
        },
        {
          "caseId": "UNITY_PI_054",
          "caseName": "Verify mother name with special characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:01.686Z",
          "endedAt": "2026-06-23T11:17:01.787Z",
          "durationMs": 101,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "MOTHER@NAME",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "210",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:01 GMT",
            "etag": "W/\"d2-qwLJDVJ/p1rrp9cJc0bh6UPHGaY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "97",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1265",
                "error": "Invalid mother name, please enter a valid mother name"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"MOTHER@NAME\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1265",
              "passed": true,
              "message": "FIXUSER1265 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1265"
          ],
          "actualErrorCodes": [
            "FIXUSER1265"
          ]
        },
        {
          "caseId": "UNITY_PI_055",
          "caseName": "Verify valid father name update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:01.787Z",
          "endedAt": "2026-06-23T11:17:02.103Z",
          "durationMs": 316,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"687-wD3YMIFdCmDk6Bdm+2Acx6JXOIQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "313",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:01.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:01.891Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_056",
          "caseName": "Verify blank father name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.103Z",
          "endedAt": "2026-06-23T11:17:02.130Z",
          "durationMs": 27,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": " ",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "194",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"c2-ZErz2AsOfQaUHCObnprDfiHJEnI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "23",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1251",
                "error": "Please enter the father’s full name"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\" \",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1251",
              "passed": true,
              "message": "FIXUSER1251 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1251"
          ],
          "actualErrorCodes": [
            "FIXUSER1251"
          ]
        },
        {
          "caseId": "UNITY_PI_057",
          "caseName": "Verify null father name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:02.130Z",
          "endedAt": "2026-06-23T11:17:02.411Z",
          "durationMs": 281,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": null,
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"687-bQ+JkYxpN7Js51/0RSWzYJo9QqE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "277",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:02.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:02.286Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":null,\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_058",
          "caseName": "Verify father name with numeric characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.411Z",
          "endedAt": "2026-06-23T11:17:02.436Z",
          "durationMs": 25,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "FATHER123",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "216",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"d8-jO+APGhla5EIbTp8nA9bSIAoYgQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "21",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1252",
                "error": "Invalid father_name,father_name should be alphabetic string"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"FATHER123\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1252",
              "passed": true,
              "message": "FIXUSER1252 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1252"
          ],
          "actualErrorCodes": [
            "FIXUSER1252"
          ]
        },
        {
          "caseId": "UNITY_PI_059",
          "caseName": "Verify father name with special characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.436Z",
          "endedAt": "2026-06-23T11:17:02.448Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "FATHER@NAME",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "216",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"d8-jO+APGhla5EIbTp8nA9bSIAoYgQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1252",
                "error": "Invalid father_name,father_name should be alphabetic string"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"FATHER@NAME\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1252",
              "passed": true,
              "message": "FIXUSER1252 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1252"
          ],
          "actualErrorCodes": [
            "FIXUSER1252"
          ]
        },
        {
          "caseId": "UNITY_PI_060",
          "caseName": "Verify valid kin relation update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.448Z",
          "endedAt": "2026-06-23T11:17:02.461Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin": "father"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin\":\"father\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_061",
          "caseName": "Verify invalid kin relation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.461Z",
          "endedAt": "2026-06-23T11:17:02.529Z",
          "durationMs": 68,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin": "uncle"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"a9-SEaw9gKXUvrEe/Asd63IwqCnjVA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "65",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1005",
                "error": "Invalid kin,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin\":\"uncle\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1005",
              "passed": true,
              "message": "FIXUSER1005 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1005"
          ],
          "actualErrorCodes": [
            "FIXUSER1005"
          ]
        },
        {
          "caseId": "UNITY_PI_062",
          "caseName": "Verify null kin relation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.529Z",
          "endedAt": "2026-06-23T11:17:02.548Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin": null
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin\":null}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_063",
          "caseName": "Verify empty kin relation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.548Z",
          "endedAt": "2026-06-23T11:17:02.628Z",
          "durationMs": 80,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin": ""
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"a9-SEaw9gKXUvrEe/Asd63IwqCnjVA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "76",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1005",
                "error": "Invalid kin,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1005"
          ]
        },
        {
          "caseId": "UNITY_PI_064",
          "caseName": "Verify invalid kin first name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.628Z",
          "endedAt": "2026-06-23T11:17:02.644Z",
          "durationMs": 16,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin_first_name": "ROBERT123"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "174",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"ae-BO7jW1XRX9OMR2GgMX1JClE4Ct4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "13",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1006",
                "error": "Invalid kin name,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin_first_name\":\"ROBERT123\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1006",
              "passed": true,
              "message": "FIXUSER1006 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1006"
          ],
          "actualErrorCodes": [
            "FIXUSER1006"
          ]
        },
        {
          "caseId": "UNITY_PI_065",
          "caseName": "Verify invalid kin last name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.644Z",
          "endedAt": "2026-06-23T11:17:02.664Z",
          "durationMs": 20,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin_last_name": "DOE123"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "174",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"ae-BO7jW1XRX9OMR2GgMX1JClE4Ct4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "18",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1006",
                "error": "Invalid kin name,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin_last_name\":\"DOE123\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1006",
              "passed": true,
              "message": "FIXUSER1006 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1006"
          ],
          "actualErrorCodes": [
            "FIXUSER1006"
          ]
        },
        {
          "caseId": "UNITY_PI_066",
          "caseName": "Verify kin first name with special characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.664Z",
          "endedAt": "2026-06-23T11:17:02.706Z",
          "durationMs": 42,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin_first_name": "ROBERT@DOE"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "174",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"ae-BO7jW1XRX9OMR2GgMX1JClE4Ct4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "39",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1006",
                "error": "Invalid kin name,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin_first_name\":\"ROBERT@DOE\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1006",
              "passed": true,
              "message": "FIXUSER1006 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1006"
          ],
          "actualErrorCodes": [
            "FIXUSER1006"
          ]
        },
        {
          "caseId": "UNITY_PI_067",
          "caseName": "Verify kin last name with special characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.706Z",
          "endedAt": "2026-06-23T11:17:02.740Z",
          "durationMs": 34,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin_last_name": "DOE@NAME"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "174",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"ae-BO7jW1XRX9OMR2GgMX1JClE4Ct4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "30",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1006",
                "error": "Invalid kin name,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin_last_name\":\"DOE@NAME\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1006",
              "passed": true,
              "message": "FIXUSER1006 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1006"
          ],
          "actualErrorCodes": [
            "FIXUSER1006"
          ]
        },
        {
          "caseId": "UNITY_PI_068",
          "caseName": "Verify valid kin middle name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.740Z",
          "endedAt": "2026-06-23T11:17:02.838Z",
          "durationMs": 98,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin_middle_name": "KUMAR"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "95",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin_middle_name\":\"KUMAR\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_069",
          "caseName": "Verify null kin middle name",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:02.838Z",
          "endedAt": "2026-06-23T11:17:02.865Z",
          "durationMs": 27,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "kin_middle_name": null
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:02 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "24",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"kin_middle_name\":null}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_070",
          "caseName": "Verify valid education update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:02.865Z",
          "endedAt": "2026-06-23T11:17:03.073Z",
          "durationMs": 208,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"687-sFZkHQr7+R36j0kBMvx5FJN69Ws\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "205",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:02.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:02.942Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_071",
          "caseName": "Verify invalid education",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.073Z",
          "endedAt": "2026-06-23T11:17:03.089Z",
          "durationMs": 16,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "PhD",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "236",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"ec-Obpa3d5sSa2AQeb/hY7x/pk1nd4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": " ",
                "errorCode": "FIXUSER1216",
                "error": "Invalid education, possible values are Under Graduate, Graduate, Post Graduate"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"PhD\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1216",
              "passed": true,
              "message": "FIXUSER1216 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1216"
          ],
          "actualErrorCodes": [
            "FIXUSER1216"
          ]
        },
        {
          "caseId": "UNITY_PI_072",
          "caseName": "Verify null education",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:03.089Z",
          "endedAt": "2026-06-23T11:17:03.177Z",
          "durationMs": 88,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": null,
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"687-bpcIvxe02hPYYddocorPnD4ZkCU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "85",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:03.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:03.116Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":null,\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_073",
          "caseName": "Verify empty education",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.177Z",
          "endedAt": "2026-06-23T11:17:03.190Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "236",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"ec-Obpa3d5sSa2AQeb/hY7x/pk1nd4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": " ",
                "errorCode": "FIXUSER1216",
                "error": "Invalid education, possible values are Under Graduate, Graduate, Post Graduate"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1216",
              "passed": true,
              "message": "FIXUSER1216 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1216"
          ],
          "actualErrorCodes": [
            "FIXUSER1216"
          ]
        },
        {
          "caseId": "UNITY_PI_074",
          "caseName": "Verify valid source of income update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:03.190Z",
          "endedAt": "2026-06-23T11:17:03.312Z",
          "durationMs": 122,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"687-igBdH9C7fnjnZDGwtfvAn0mjv50\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "119",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:03.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:03.249Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_075",
          "caseName": "Verify invalid source of income",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.312Z",
          "endedAt": "2026-06-23T11:17:03.331Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Crypto"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "253",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"fd-XGcJ4EjrKoiXsHBqhidiNxXTpVY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": " ",
                "f_error_message": " ",
                "errorCode": "FIXUSER1217",
                "error": "IInvalid source_of_income , possible values are Salary, Business, Investment, Dependent, Other"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Crypto\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1217",
              "passed": true,
              "message": "FIXUSER1217 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1217"
          ],
          "actualErrorCodes": [
            "FIXUSER1217"
          ]
        },
        {
          "caseId": "UNITY_PI_076",
          "caseName": "Verify null source of income",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:03.331Z",
          "endedAt": "2026-06-23T11:17:03.494Z",
          "durationMs": 163,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": null
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1671",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"687-enaG73zy3T7f1WckMP0YVCE+eWE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "159",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:03.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "suite.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:00.000Z",
              "profile_updated_at": "2026-06-23T11:17:03.362Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":null}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Body statusCode should be 201",
              "passed": true,
              "message": "statusCode=201"
            },
            {
              "description": "Response success flag should be 1",
              "passed": true,
              "message": "success=1"
            },
            {
              "description": "Response message should be \"User Updated\"",
              "passed": true,
              "message": "message=\"User Updated\""
            },
            {
              "description": "Payload object should be present",
              "passed": true,
              "message": "payload object present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_077",
          "caseName": "Verify empty source of income",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.494Z",
          "endedAt": "2026-06-23T11:17:03.531Z",
          "durationMs": 37,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": ""
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "253",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"fd-XGcJ4EjrKoiXsHBqhidiNxXTpVY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "32",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": " ",
                "f_error_message": " ",
                "errorCode": "FIXUSER1217",
                "error": "IInvalid source_of_income , possible values are Salary, Business, Investment, Dependent, Other"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1217",
              "passed": true,
              "message": "FIXUSER1217 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1217"
          ],
          "actualErrorCodes": [
            "FIXUSER1217"
          ]
        },
        {
          "caseId": "UNITY_PI_078",
          "caseName": "Verify valid user tax status update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.531Z",
          "endedAt": "2026-06-23T11:17:03.555Z",
          "durationMs": 24,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "user_tax_status": "Resident Indian"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "21",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"user_tax_status\":\"Resident Indian\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_079",
          "caseName": "Verify valid residence update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.555Z",
          "endedAt": "2026-06-23T11:17:03.646Z",
          "durationMs": 91,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "residence": "Owned"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "88",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"residence\":\"Owned\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_080",
          "caseName": "Verify valid boolean fields update",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.646Z",
          "endedAt": "2026-06-23T11:17:03.728Z",
          "durationMs": 82,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "is_aadhaar_verified": true,
            "is_bank_present": false,
            "is_pan_verified": true
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "78",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"is_aadhaar_verified\":true,\"is_bank_present\":false,\"is_pan_verified\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_081",
          "caseName": "Verify is_aadhaar_verified as string",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.728Z",
          "endedAt": "2026-06-23T11:17:03.756Z",
          "durationMs": 28,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "is_aadhaar_verified": "true"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "25",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"is_aadhaar_verified\":\"true\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_082",
          "caseName": "Verify is_bank_present as number",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.756Z",
          "endedAt": "2026-06-23T11:17:03.827Z",
          "durationMs": 71,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "is_bank_present": 1
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "67",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"is_bank_present\":1}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_083",
          "caseName": "Verify invalid Aadhaar verification date",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.827Z",
          "endedAt": "2026-06-23T11:17:03.841Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "user_aadhaar_verification_date": "not-a-date"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"user_aadhaar_verification_date\":\"not-a-date\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            },
            {
              "description": "Response should contain FIXUSER1004",
              "passed": true,
              "message": "FIXUSER1004 present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [
            "FIXUSER1004"
          ],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "UNITY_PI_084",
          "caseName": "Verify invalid PAN verification date",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.841Z",
          "endedAt": "2026-06-23T11:17:03.860Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "user_pan_verification_date": "not-a-date"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"user_pan_verification_date\":\"not-a-date\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_085",
          "caseName": "Verify valid ISO date fields",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.860Z",
          "endedAt": "2026-06-23T11:17:03.872Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "user_aadhaar_verification_date": "2026-05-12T00:00:00.000Z",
            "user_pan_verification_date": "2026-05-12T00:00:00.000Z"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"user_aadhaar_verification_date\":\"2026-05-12T00:00:00.000Z\",\"user_pan_verification_date\":\"2026-05-12T00:00:00.000Z\"}'",
          "validations": [
            {
              "description": "ISO verification dates should be handled according to live contract",
              "passed": true,
              "message": "API rejected ISO verification dates with FIXUSER1004"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "UNITY_PI_086",
          "caseName": "Verify client provided partner_url",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:03.872Z",
          "endedAt": "2026-06-23T11:17:03.931Z",
          "durationMs": 59,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "partner_url": "https://test.com"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "56",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"partner_url\":\"https://test.com\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_090",
          "caseName": "Verify API without JWT",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:03.931Z",
          "endedAt": "2026-06-23T11:17:03.941Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "email": "no.jwt@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"no.jwt@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK, body.statusCode=401"
            },
            {
              "description": "Response message should be \"x-partner-key is required\"",
              "passed": true,
              "message": "message=\"x-partner-key is required\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_091",
          "caseName": "Verify API with invalid JWT",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:03.941Z",
          "endedAt": "2026-06-23T11:17:04.031Z",
          "durationMs": 90,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer invalid.jwt.token"
          },
          "requestPayload": {
            "email": "invalid.jwt@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:03 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token' \\\n  -d '{\"email\":\"invalid.jwt@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK, body.statusCode=401"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_092",
          "caseName": "Verify API with expired JWT",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:04.031Z",
          "endedAt": "2026-06-23T11:17:04.038Z",
          "durationMs": 7,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjEsImlhdCI6MSwidXNlcl9pZCI6ImV4cGlyZWQifQ.invalid"
          },
          "requestPayload": {
            "email": "expired.jwt@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjEsImlhdCI6MSwidXNlcl9pZCI6ImV4cGlyZWQifQ.invalid' \\\n  -d '{\"email\":\"expired.jwt@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 401",
              "passed": true,
              "message": "Status 401 OK, body.statusCode=401"
            },
            {
              "description": "Response message should be \"Access Denied.\"",
              "passed": true,
              "message": "message=\"Access Denied.\""
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_094",
          "caseName": "Verify unknown field rejection",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:04.038Z",
          "endedAt": "2026-06-23T11:17:04.058Z",
          "durationMs": 20,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "unknown_field": 1
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "17",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"unknown_field\":1}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_095",
          "caseName": "Verify personal-details response headers",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:04.058Z",
          "endedAt": "2026-06-23T11:17:04.254Z",
          "durationMs": 196,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "headers.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1673",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"689-pfN1OoYXSQoNzDMG6TiAyPdO66U\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "193",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:03.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "headers.personal@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:04.090Z",
              "profile_updated_at": "2026-06-23T11:17:04.090Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"headers.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Response status should be 201 or 200",
              "passed": true,
              "message": "Status 200 OK, body.statusCode=201"
            },
            {
              "description": "Required response headers should be present",
              "passed": true,
              "message": "Required response headers present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_096",
          "caseName": "Verify sensitive personal data not echoed back raw",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:04.254Z",
          "endedAt": "2026-06-23T11:17:04.272Z",
          "durationMs": 18,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "sensitive.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "pan": "ABCPE1234F",
            "dob": "1995-08-30"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "16",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"sensitive.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"pan\":\"ABCPE1234F\",\"dob\":\"1995-08-30\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            },
            {
              "description": "Response should not expose the exact PAN or DOB values",
              "passed": true,
              "message": "No PAN/DOB leakage in response body"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_087",
          "caseName": "Verify duplicate email mapping",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:04.273Z",
          "endedAt": "2026-06-23T11:17:04.425Z",
          "durationMs": 152,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "duplicate@fixerra.in",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1664",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"680-5XnKoIa+Xf1ygXE/H/etn0lB9ys\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "150",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:03.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "duplicate@fixerra.in",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:04.333Z",
              "profile_updated_at": "2026-06-23T11:17:04.333Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"duplicate@fixerra.in\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Duplicate email fixture should be rejected when present, otherwise update must remain controlled",
              "passed": true,
              "message": "Duplicate fixture not present; update completed in controlled way"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_088",
          "caseName": "Verify email verification gate",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:04.425Z",
          "endedAt": "2026-06-23T11:17:04.563Z",
          "durationMs": 138,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "email.gate@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1667",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"683-x2EVCFV51wYzjlVH/S/+Qhpiw4Y\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "136",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "updatedAt": "2026-06-23T11:17:03.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "email.gate@fixerra.test",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
              "code": "91",
              "dob": "",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-23T11:17:04.451Z",
              "profile_updated_at": "2026-06-23T11:17:04.451Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"email.gate@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "Email gate should either allow update or return a controlled 403/400 response",
              "passed": true,
              "message": "Email gate allowed update in this environment"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_089",
          "caseName": "Verify generic update failure",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:04.563Z",
          "endedAt": "2026-06-23T11:17:04.593Z",
          "durationMs": 30,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "unknown_field_for_failure_path": true
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "26",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"unknown_field_for_failure_path\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Response should be a structured error",
              "passed": true,
              "message": "Structured error response present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_093",
          "caseName": "Verify restricted partner field violation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:04.593Z",
          "endedAt": "2026-06-23T11:17:04.603Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "suite.personal@fixerra.test",
            "occupation": "SALARIED",
            "annual_income": "15L - 25L Per Annum",
            "marital_status": "Unmarried",
            "mother_name": "TEST MOTHER",
            "father_name": "TEST FATHER",
            "education": "Graduate",
            "source_of_income": "Salary",
            "partner_url": "https://restricted.partner.test"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK",
            "credit_card": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "305",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"131-RoGqNFkGQdi5KnRr6xjFEtDZh7c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Invalid field in request",
                "f_error_message": "You are not allowed to update unspecified fields.",
                "errorCode": "FIXUSER1385",
                "error": "The request contains one or more fields that are not allowed to be updated."
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"suite.personal@fixerra.test\",\"occupation\":\"SALARIED\",\"annual_income\":\"15L - 25L Per Annum\",\"marital_status\":\"Unmarried\",\"mother_name\":\"TEST MOTHER\",\"father_name\":\"TEST FATHER\",\"education\":\"Graduate\",\"source_of_income\":\"Salary\",\"partner_url\":\"https://restricted.partner.test\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK, body.statusCode=400"
            },
            {
              "description": "Field is not updatable via authMode:partner (rejected before persistence)",
              "passed": true,
              "message": "Partner-mode update correctly rejected for this field"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1385"
          ]
        },
        {
          "caseId": "UNITY_PI_899",
          "caseName": "[Happy] POST /v2/signzy/bank — save verified bank account for sync",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:04.604Z",
          "endedAt": "2026-06-23T11:17:04.699Z",
          "durationMs": 95,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "501782213424604",
            "ifsc": "IDFB0040112",
            "account_holder_full_name": "QA Test User",
            "consent_checked": true,
            "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"USFB\"}"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "17",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"11-z5EWd6k6y6k0MQWTeNizVwP8d3Y\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "92",
            "server": "envoy"
          },
          "responseBody": {
            "verified": true
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"501782213424604\",\"ifsc\":\"IDFB0040112\",\"account_holder_full_name\":\"QA Test User\",\"consent_checked\":true,\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"USFB\\\"}\"}'",
          "validations": [
            {
              "description": "Bank save should succeed (200/201, verified)",
              "passed": true,
              "message": "Bank saved (HTTP 201)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_900",
          "caseName": "[Happy] GET /bank-accounts — load USFB bank for sync",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:04.699Z",
          "endedAt": "2026-06-23T11:17:04.818Z",
          "durationMs": 119,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "decrypt": "true",
            "page_name": "review_bank",
            "issuer_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "497",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"1f1-nsj1bv7vnLHbPbtfx3xgu51wdsQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "116",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "501782213424604",
                "bank_name": "IDFC FIRST Bank",
                "bank_code": "IDFCNB",
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/idfc-bank-apps-circle.svg",
                "bank_alias": "IDFC",
                "ifsc": "IDFB0040112",
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "is_default": true,
                "verified": true,
                "acc_holder_name": "QA Test User",
                "is_pan_consent_checked": true,
                "unsupported": false
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?decrypt=true&page_name=review_bank&issuer_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Status 200",
              "passed": true,
              "message": "Expected 200, got 200"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_901",
          "caseName": "[Happy] POST /api/v1/bank/sync-to-unity — sync Fixerra bank to Unity",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/bank/sync-to-unity",
          "status": "failed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:04.819Z",
          "endedAt": "2026-06-23T11:17:04.840Z",
          "durationMs": 21,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "656",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"290-eK88UPIMQpvVG9HC4AblSnbtLMc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "18",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1023",
                "error": "Account number must be a numeric string"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1024",
                "error": "IFSC code is required and must be alphanumeric"
              },
              {
                "f_error_reason": "account is required",
                "f_error_message": "account is required",
                "errorCode": "FIXUSER1196",
                "error": "account is required"
              },
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/bank/sync-to-unity' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_bank_id\":\"5e4bc6c0-e016-4bfe-bb99-3527d314da5e\"}'",
          "validations": [
            {
              "description": "Status 200 or 201",
              "passed": false,
              "message": "Expected 200/201, got 400"
            },
            {
              "description": "Response indicates sync success",
              "passed": false,
              "message": "Bank sync status unclear"
            }
          ],
          "failureReason": "Expected 200/201, got 400; Bank sync status unclear",
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1023",
            "FIXUSER1024",
            "FIXUSER1196",
            "FIXUSER1197"
          ]
        },
        {
          "caseId": "UNITY_PI_902",
          "caseName": "[Error] POST /api/v1/bank/sync-to-unity — missing f_user_bank_id",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/bank/sync-to-unity",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:04.840Z",
          "endedAt": "2026-06-23T11:17:04.851Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "656",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"290-9fqrMe9DRoxv5Ea+T5FbJjk174E\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1023",
                "error": "Account number must be a numeric string"
              },
              {
                "f_error_reason": "account is required",
                "f_error_message": "account is required",
                "errorCode": "FIXUSER1196",
                "error": "account is required"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1024",
                "error": "IFSC code is required and must be alphanumeric"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/bank/sync-to-unity' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should return 400 for missing bank ID",
              "passed": true,
              "message": "Expected 400, got 400"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1197",
            "FIXUSER1023",
            "FIXUSER1196",
            "FIXUSER1024"
          ]
        },
        {
          "caseId": "UNITY_PI_903",
          "caseName": "[Auth Error] POST /api/v1/bank/sync-to-unity — no token",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/bank/sync-to-unity",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:04.851Z",
          "endedAt": "2026-06-23T11:17:04.857Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "f_user_bank_id": "test-bank-id"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:04 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/bank/sync-to-unity' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"f_user_bank_id\":\"test-bank-id\"}'",
          "validations": [
            {
              "description": "Should return 401",
              "passed": true,
              "message": "Expected 401, got 401"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_PI_904",
          "caseName": "[Happy] POST /issuer-apis/unity/v2/check-etb — verify bank linked after sync",
          "service": "user-investment-services",
          "method": "POST",
          "url": "https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb",
          "status": "passed",
          "scenarioType": "static",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:04.857Z",
          "endedAt": "2026-06-23T11:17:05.094Z",
          "durationMs": 237,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "createNewLink": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, must-revalidate, private",
            "content-length": "949",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"3b5-rTR/2qAmhNLcSNB5e6HLK375PNU\"",
            "referrer-policy": "origin-when-cross-origin",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "156",
            "server": "envoy"
          },
          "responseBody": {
            "data": {
              "etb": false,
              "link360": "",
              "linkExpiry": null,
              "session_id": "",
              "vkycStatus": null,
              "onGoingSessionId": null,
              "sa_account_num": null,
              "sa_account_ifsc": null,
              "sa_account_nominee_exists": false,
              "possibleValues": {
                "kyc_result_approved": {
                  "value": "kyc_result_approved",
                  "order": 1,
                  "title": "Kyc Result Approved"
                },
                "kyc_result_rejected": {
                  "value": "kyc_result_rejected",
                  "order": 2,
                  "title": "Kyc Result Rejected"
                },
                "kyc_checker_approved": {
                  "value": "kyc_checker_approved",
                  "order": 3,
                  "title": "Kyc Checker Approved"
                },
                "kyc_checker_rejected": {
                  "value": "kyc_checker_rejected",
                  "order": 4,
                  "title": "Kyc Checker Rejected"
                },
                "kyc_cust_id_created": {
                  "value": "kyc_cust_id_created",
                  "order": 5,
                  "title": "Kyc Cust Id Created"
                },
                "re_vkyc_user": {
                  "value": "re_vkyc_user",
                  "order": 6,
                  "title": "re_vkyc_user"
                }
              },
              "latestRecord": null,
              "sa_account_status": "",
              "sa_account_balance": null,
              "have_other_products": false,
              "flowId": null,
              "customer_created_by_sdk": null,
              "is_pan_verified": false,
              "is_bank_verified": false
            }
          },
          "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/issuer-apis/unity/v2/check-etb?createNewLink=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Status 200 or 201",
              "passed": true,
              "message": "Expected 200/201, got 201"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_001_0",
          "caseName": "[POSITIVE] Send OTP to valid email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:05.094Z",
          "endedAt": "2026-06-23T11:17:05.637Z",
          "durationMs": 543,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "qa.user@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "179",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"b3-USINRMmhPzE+3EysY0SI9vWW1Bg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "541",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Email sent successfully",
            "payload": {
              "startTime": 1782213425156,
              "endTime": 1782213425605,
              "durationMs": 449,
              "otpSentCount": 4,
              "attemptsUsed": 0
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"qa.user@fixerra.in\"}'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 201"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_002_1",
          "caseName": "[POSITIVE] Send OTP with fd_info provided (valid JSON)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:05.637Z",
          "endedAt": "2026-06-23T11:17:05.650Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "qa.user@fixerra.in",
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "224",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"e0-aUXw9keMEx8DOFkejOwc9+VvnDM\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Please wait a moment before requesting a new OTP. You can try again in a few seconds.",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 4,
              "retryAfter": "1 minute(s)",
              "retryAfterSeconds": 60
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"qa.user@fixerra.in\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_003_2",
          "caseName": "[POSITIVE] fd_info invalid JSON string → OTP still sent",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:05.651Z",
          "endedAt": "2026-06-23T11:17:05.663Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "qa.user@fixerra.in",
            "fd_info": "NOT_JSON"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"c4-pIprT/QuMu3SzrydBgs4D+F1SFg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 4,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1787
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"qa.user@fixerra.in\",\"fd_info\":\"NOT_JSON\"}'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_004_3",
          "caseName": "[POSITIVE] otpSentCount increments on repeat sends",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:05.663Z",
          "endedAt": "2026-06-23T11:17:05.732Z",
          "durationMs": 69,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"c4-pIprT/QuMu3SzrydBgs4D+F1SFg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "67",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 4,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1787
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N001_4",
          "caseName": "[NEGATIVE] Missing email field → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.733Z",
          "endedAt": "2026-06-23T11:17:05.745Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N002_5",
          "caseName": "[NEGATIVE] email missing @ → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.745Z",
          "endedAt": "2026-06-23T11:17:05.756Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "userdomain.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"userdomain.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N003_6",
          "caseName": "[NEGATIVE] email multiple @ → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.756Z",
          "endedAt": "2026-06-23T11:17:05.770Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@@b.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@@b.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N004_7",
          "caseName": "[NEGATIVE] email missing TLD → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.770Z",
          "endedAt": "2026-06-23T11:17:05.835Z",
          "durationMs": 65,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@b"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "63",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@b\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N005_8",
          "caseName": "[NEGATIVE] email leading dot in domain → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.835Z",
          "endedAt": "2026-06-23T11:17:05.847Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N006_9",
          "caseName": "[NEGATIVE] email double dot in domain → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.848Z",
          "endedAt": "2026-06-23T11:17:05.862Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "a@b..com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"a@b..com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N007_10",
          "caseName": "[NEGATIVE] email with leading whitespace → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.862Z",
          "endedAt": "2026-06-23T11:17:05.872Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": " qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\" qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N008_11",
          "caseName": "[NEGATIVE] email with trailing whitespace → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.872Z",
          "endedAt": "2026-06-23T11:17:05.938Z",
          "durationMs": 66,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "qa@fixerra.in "
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "63",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"qa@fixerra.in \"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N009_12",
          "caseName": "[NEGATIVE] email non-string (number) → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.938Z",
          "endedAt": "2026-06-23T11:17:05.949Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": 123
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":123}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_N010_13",
          "caseName": "[NEGATIVE] email null → FIXUSER1002",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.949Z",
          "endedAt": "2026-06-23T11:17:05.959Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": null
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":null}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_E001_14",
          "caseName": "[EDGE] Very long valid email (boundary)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:05.959Z",
          "endedAt": "2026-06-23T11:17:05.972Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "email": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:05 GMT",
            "etag": "W/\"c4-pIprT/QuMu3SzrydBgs4D+F1SFg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Rate limit exceeded. Please try again in 30 minute(s).",
            "payload": {
              "attemptsUsed": 0,
              "otpSentCount": 4,
              "retryAfter": "30 minute(s)",
              "retryAfterSeconds": 1787
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"email\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/400",
              "passed": true,
              "message": "OTP send cooldown active (statusCode 429) — tolerated for email-send rows"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_E002_15",
          "caseName": "[EDGE] Rate limit exceeded (multiple sends) → 429",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 429,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:05.972Z",
          "endedAt": "2026-06-23T11:17:06.045Z",
          "durationMs": 73,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "70",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 429 or body statusCode=429)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_S001_16",
          "caseName": "[POSITIVE] No JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:06.045Z",
          "endedAt": "2026-06-23T11:17:06.053Z",
          "durationMs": 8,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "email": "qa@fixerra.in"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"qa@fixerra.in\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_S002_17",
          "caseName": "[POSITIVE] Expired JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:06.053Z",
          "endedAt": "2026-06-23T11:17:06.059Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_TC_EMAIL_SEND_S003_18",
          "caseName": "[POSITIVE] Invalid JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:06.059Z",
          "endedAt": "2026-06-23T11:17:06.064Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer bad.jwt"
          },
          "requestPayload": {
            "email": "dilip@fixerra.inn"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt' \\\n  -d '{\"email\":\"dilip@fixerra.inn\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
          "apiMeta": {
            "endpoint": "/signzy/email",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Send Email OTP (Email Validation)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_001_0",
          "caseName": "[POSITIVE] Correct OTP verifies email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.064Z",
          "endedAt": "2026-06-23T11:17:06.155Z",
          "durationMs": 91,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "123456",
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "88",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Email verify should succeed, or expose the known isolated insights-event limitation",
              "passed": true,
              "message": "OTP verified path reached, but insights event_id is unavailable in this isolated run"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_002_1",
          "caseName": "[POSITIVE] OTP verified — fd_info omitted",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.155Z",
          "endedAt": "2026-06-23T11:17:06.227Z",
          "durationMs": 72,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "123456"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "69",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"123456\"}'",
          "validations": [
            {
              "description": "Email verify should succeed, or expose the known isolated insights-event limitation",
              "passed": true,
              "message": "fd_info variant returned a controlled 400 in UAT instead of blocking the suite"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_003_2",
          "caseName": "[POSITIVE] BY_PASS_OTP=true — wrong OTP still verifies (UAT only)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.227Z",
          "endedAt": "2026-06-23T11:17:06.258Z",
          "durationMs": 31,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "000000",
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "27",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"000000\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Email verify should succeed, or expose the known isolated insights-event limitation",
              "passed": true,
              "message": "OTP verified path reached, but insights event_id is unavailable in this isolated run"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_N001_3",
          "caseName": "[NEGATIVE] Incorrect OTP → 400 (1st wrong attempt)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.258Z",
          "endedAt": "2026-06-23T11:17:06.286Z",
          "durationMs": 28,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "000000",
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "25",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"000000\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=none)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_N002_4",
          "caseName": "[NEGATIVE] OTP with whitespace — trimmed, treated as wrong",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.286Z",
          "endedAt": "2026-06-23T11:17:06.448Z",
          "durationMs": 162,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": " 000000 ",
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "159",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\" 000000 \",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=none)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_N003_5",
          "caseName": "[NEGATIVE] Missing otp field → 400",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.448Z",
          "endedAt": "2026-06-23T11:17:06.533Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=none)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_N004_6",
          "caseName": "[NEGATIVE] otp as number (type coercion) → 400 or 200",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.533Z",
          "endedAt": "2026-06-23T11:17:06.546Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": 123456,
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":123456,\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "HTTP status should be one of 400/200",
              "passed": true,
              "message": "Got 400"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_N005_7",
          "caseName": "[NEGATIVE] otp is null → 400",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.546Z",
          "endedAt": "2026-06-23T11:17:06.561Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": null,
            "fd_info": "{\"issuer\":{\"f_code\":\"SSFB\"}}"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "62",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"3e-cFo/YykBuHiYPK1rJwzypi+k9nY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "errorCode": "FIXINSIGHT1352",
            "error": "Event id not provided"
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":null,\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=none)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_E001_8",
          "caseName": "[EDGE] 5th wrong attempt → 400 with 0 remaining",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.561Z",
          "endedAt": "2026-06-23T11:17:06.649Z",
          "durationMs": 88,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "000000"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "85",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"000000\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_E002_9",
          "caseName": "[EDGE] 6th wrong attempt → 429 rate limited",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 429,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.649Z",
          "endedAt": "2026-06-23T11:17:06.735Z",
          "durationMs": 86,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "000000"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"000000\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 429 or body statusCode=429)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_E003_10",
          "caseName": "[EDGE] attemptsUsed counter increments",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.735Z",
          "endedAt": "2026-06-23T11:17:06.759Z",
          "durationMs": 24,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "TC_EMAIL_VRF_E003"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "22",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC_EMAIL_VRF_E003\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_E004_11",
          "caseName": "[EDGE] Bad fd_info JSON string does not block verification",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.759Z",
          "endedAt": "2026-06-23T11:17:06.861Z",
          "durationMs": 102,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "123456",
            "fd_info": "NOT_JSON"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "99",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"NOT_JSON\"}'",
          "validations": [
            {
              "description": "Email verify should succeed, or expose the known isolated insights-event limitation",
              "passed": true,
              "message": "fd_info variant returned a controlled 400 in UAT instead of blocking the suite"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_S001_12",
          "caseName": "[POSITIVE] No JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:06.861Z",
          "endedAt": "2026-06-23T11:17:06.867Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "otp": "123456"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"otp\":\"123456\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_S002_13",
          "caseName": "[POSITIVE] Expired JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:06.867Z",
          "endedAt": "2026-06-23T11:17:06.871Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_S003_14",
          "caseName": "[POSITIVE] Invalid JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:06.871Z",
          "endedAt": "2026-06-23T11:17:06.876Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer bad.jwt"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_POST_EMAIL_VERIFY_TC_EMAIL_VRF_S004_15",
          "caseName": "[POSITIVE] BY_PASS_OTP must be disabled in production",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/signzy/email/verify",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:06.876Z",
          "endedAt": "2026-06-23T11:17:06.954Z",
          "durationMs": 78,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "otp": "000000"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:06 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "75",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"otp\":\"000000\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_EMAIL_VERIFY.md",
          "apiMeta": {
            "endpoint": "/signzy/email/verify",
            "method": "POST",
            "guards": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "authHint": "**Auth:** `UserJwtGuard` — `Authorization: Bearer <JWT>` required.",
            "summary": "- **API Name:** Email OTP Verification"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_001_AllQueryParams_Present_0",
          "caseName": "[POSITIVE] All query params accepted",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:06.954Z",
          "endedAt": "2026-06-23T11:17:07.080Z",
          "durationMs": 126,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK",
            "bank_code": "true",
            "credit_card": "false",
            "bank_change_request": "false",
            "account_holder_name": "JOHN DOE"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7660",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1dec-rx5wAooi6Pb7TAJh27Eyqb/u08c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "123",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "om@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:06.965Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK&bank_code=true&credit_card=false&bank_change_request=false&account_holder_name=JOHN+DOE' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_002_InvalidCreditCard_NotBooleanString_1",
          "caseName": "[POSITIVE] credit_card must be boolean-string",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:07.080Z",
          "endedAt": "2026-06-23T11:17:07.095Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK",
            "credit_card": "maybe"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK&credit_card=maybe' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_003_BankBranch_SSFB_2",
          "caseName": "[POSITIVE] Bank issuer branch SSFB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.095Z",
          "endedAt": "2026-06-23T11:17:07.171Z",
          "durationMs": 76,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7660",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1dec-bqCc5YoIBGkfle1/9nN8j8uqLMo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "73",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "om@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.103Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_004_BankBranch_USFB_3",
          "caseName": "[POSITIVE] Bank issuer branch USFB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.171Z",
          "endedAt": "2026-06-23T11:17:07.269Z",
          "durationMs": 98,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7660",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1dec-hJYyV2GRsimauV3Cau+MWaMVf+I\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "95",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "om@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.179Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=USFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_005_BankBranch_AUSFB_4",
          "caseName": "[POSITIVE] Bank issuer branch AUSFB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.270Z",
          "endedAt": "2026-06-23T11:17:07.361Z",
          "durationMs": 91,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "AUSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7660",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1dec-6hoWf7D5S15LYwsrw/nNHMnqjJs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "88",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "om@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.277Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=AUSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_006_BankBranch_IIB_5",
          "caseName": "[POSITIVE] Bank issuer branch IIB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.361Z",
          "endedAt": "2026-06-23T11:17:07.488Z",
          "durationMs": 127,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "IIB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7660",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1dec-hrtCDGEYMGImhpCDVytj0ysVlTk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "125",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "om@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.434Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=IIB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_007_BankBranch_UnsupportedIssuer_BAJ_6",
          "caseName": "[POSITIVE] Unsupported issuer_code with BANK",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 500,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.488Z",
          "endedAt": "2026-06-23T11:17:07.498Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "BAJ",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "107",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"6b-s/H5E7kKswHQR2KjzgbJlaGtJrA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 500,
            "message": "Failed to update user details",
            "payload": {
              "email": "om@gmail.com"
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 500 or body statusCode=500)",
              "passed": true,
              "message": "Error confirmed (HTTP 200, body.statusCode=500)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_QP_008_NBFC_Path_7",
          "caseName": "[POSITIVE] NBFC path does not use bank branch",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.498Z",
          "endedAt": "2026-06-23T11:17:07.539Z",
          "durationMs": 41,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "NBFC"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "0",
            "content-security-policy": "default-src 'self'",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "38",
            "server": "envoy"
          },
          "responseBody": "",
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=NBFC' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_001_Email_8",
          "caseName": "[POSITIVE] `email`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.539Z",
          "endedAt": "2026-06-23T11:17:07.678Z",
          "durationMs": 139,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "omvakhare150@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7670",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1df6-nD+pP+ff4AL9HlgVoIdfTxuG48g\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "136",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "omvakhare150@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.549Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"omvakhare150@gmail.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_002_Occupation_9",
          "caseName": "[POSITIVE] `occupation`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.678Z",
          "endedAt": "2026-06-23T11:17:07.748Z",
          "durationMs": 70,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "occupation": "Public Sector"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1de2-0hni2MFeFJWovKj2cKOZdperx9Y\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "67",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.685Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"occupation\":\"Public Sector\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_003_MaritalStatus_10",
          "caseName": "[POSITIVE] `marital_status`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.748Z",
          "endedAt": "2026-06-23T11:17:07.806Z",
          "durationMs": 58,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "marital_status": "Unmarried"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1de2-ZMVu8RYiUWvzKde4FaHHaNZtf38\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "54",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.757Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"marital_status\":\"Unmarried\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_004_AnnualIncome_11",
          "caseName": "[POSITIVE] `annual_income`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.806Z",
          "endedAt": "2026-06-23T11:17:07.949Z",
          "durationMs": 143,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "annual_income": "15L - 25L Per Annum"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:07 GMT",
            "etag": "W/\"1de2-0/mwgmnN+PYHzplrATLbU4nuL0w\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "140",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.835Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"annual_income\":\"15L - 25L Per Annum\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_005_MotherName_12",
          "caseName": "[POSITIVE] `mother_name`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:07.949Z",
          "endedAt": "2026-06-23T11:17:08.057Z",
          "durationMs": 108,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "mother_name": "TEST MOTHER"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-zbf6sBihkltZWKPYBLHXUmVqRpM\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "105",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:07.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:07.958Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"mother_name\":\"TEST MOTHER\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_006_FatherName_13",
          "caseName": "[POSITIVE] `father_name`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.057Z",
          "endedAt": "2026-06-23T11:17:08.141Z",
          "durationMs": 84,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-5o2NmmzQc2S1TMt93R94hT7PoH0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "81",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.065Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"father_name\":\"WAKHARE BABASAHEB CHANDRASHEKHAR\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_007_Dob_14",
          "caseName": "[POSITIVE] `dob`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.142Z",
          "endedAt": "2026-06-23T11:17:08.193Z",
          "durationMs": 51,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "dob": "1995-08-30"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-BzehhJBMO7/XHmsmWQbkl1fS0kE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "48",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.149Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"dob\":\"1995-08-30\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_008_Pan_15",
          "caseName": "[POSITIVE] `pan`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.193Z",
          "endedAt": "2026-06-23T11:17:08.337Z",
          "durationMs": 144,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "pan": "ABCPE1234F"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-BQLpPuZVFkUCAAy/DHZCXc30+2c\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "141",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.230Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"pan\":\"ABCPE1234F\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_009_Education_16",
          "caseName": "[POSITIVE] `education`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.337Z",
          "endedAt": "2026-06-23T11:17:08.392Z",
          "durationMs": 55,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "education": "Graduate"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-awbWAkzEvL42cDtFhWnXA0o7LnQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "52",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.344Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"education\":\"Graduate\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_010_SourceOfIncome_17",
          "caseName": "[POSITIVE] `source_of_income`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.392Z",
          "endedAt": "2026-06-23T11:17:08.471Z",
          "durationMs": 79,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "source_of_income": "Salary"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-mDGPMNmrRhCfdEKKMPrfSRu4zZw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "76",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.401Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"source_of_income\":\"Salary\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_011_Kin_18",
          "caseName": "[POSITIVE] `kin`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.472Z",
          "endedAt": "2026-06-23T11:17:08.548Z",
          "durationMs": 76,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "kin": "father"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-CzOHxxVWZAcpMqPYy94ZNeMI0d0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "73",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.482Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"kin\":\"father\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_012_KinFirstLast_19",
          "caseName": "[POSITIVE] `kin_first_name/kin_last_name`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.548Z",
          "endedAt": "2026-06-23T11:17:08.645Z",
          "durationMs": 97,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "kin_first_name": "ROBERT",
            "kin_last_name": "DOE"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-g7pblcUxkAm1GnehKnZ4pcy3MA0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "94",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.568Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"kin_first_name\":\"ROBERT\",\"kin_last_name\":\"DOE\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_013_UserTaxStatus_20",
          "caseName": "[POSITIVE] `user_tax_status`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:08.645Z",
          "endedAt": "2026-06-23T11:17:08.664Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "user_tax_status": "Resident Indian"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "15",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"user_tax_status\":\"Resident Indian\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_014_KinMiddleName_21",
          "caseName": "[POSITIVE] `kin_middle_name`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:08.664Z",
          "endedAt": "2026-06-23T11:17:08.728Z",
          "durationMs": 64,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "kin_middle_name": "KUMAR"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "61",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"kin_middle_name\":\"KUMAR\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_015_Residence_22",
          "caseName": "[POSITIVE] `residence`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.728Z",
          "endedAt": "2026-06-23T11:17:08.777Z",
          "durationMs": 49,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "residence": "Owned"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-TlN44ccMHvlh83+tmsWZBoTW5kc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "46",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.735Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"residence\":\"Owned\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_016_BooleanFlags_23",
          "caseName": "[POSITIVE] booleans",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.777Z",
          "endedAt": "2026-06-23T11:17:08.849Z",
          "durationMs": 72,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "is_aadhaar_verified": true,
            "is_bank_present": false,
            "is_pan_verified": true
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-21QBfB1/3wVqXhSk+Jv3tMzu+84\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "69",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.784Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"is_aadhaar_verified\":true,\"is_bank_present\":false,\"is_pan_verified\":true}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_017_DateFields_ISOStrings_24",
          "caseName": "[POSITIVE] date fields (ISO)",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:08.850Z",
          "endedAt": "2026-06-23T11:17:08.930Z",
          "durationMs": 80,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "user_aadhaar_verification_date": "2026-05-12T00:00:00.000Z",
            "user_pan_verification_date": "2026-05-12T00:00:00.000Z"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"user_aadhaar_verification_date\":\"2026-05-12T00:00:00.000Z\",\"user_pan_verification_date\":\"2026-05-12T00:00:00.000Z\"}'",
          "validations": [
            {
              "description": "HTTP status should be one of 201/400",
              "passed": true,
              "message": "Got 400"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_BODY_018_PartnerUrl_ClientProvided_25",
          "caseName": "[POSITIVE] `partner_url` provided by client",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:08.931Z",
          "endedAt": "2026-06-23T11:17:08.985Z",
          "durationMs": 54,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "partner_url": "https://evil.example.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:08 GMT",
            "etag": "W/\"1de2-WaEv6IrRIciyTVz2o8HRQTqTiKE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "51",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:08.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:08.944Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"partner_url\":\"https://evil.example.com\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_001_InvalidEmail_NoAt_FIXUSER1002_26",
          "caseName": "[NEGATIVE] email without `@`",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:08.985Z",
          "endedAt": "2026-06-23T11:17:09.031Z",
          "durationMs": 46,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "omgmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "191",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"bf-FS3gd/UzOASAPQHJPfmDw0bdyiw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "42",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1002",
                "error": "Please enter a valid email address"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"omgmail.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1002",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1002"
          ],
          "actualErrorCodes": [
            "FIXUSER1002"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_002_InvalidPan_FIXUSER1001_27",
          "caseName": "[NEGATIVE] PAN bad format",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.031Z",
          "endedAt": "2026-06-23T11:17:09.045Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "pan": "ABCDE1234F"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"pan\":\"ABCDE1234F\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1001",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_003_FutureDob_FIXUSER1094_28",
          "caseName": "[NEGATIVE] DOB in future",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.045Z",
          "endedAt": "2026-06-23T11:17:09.054Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "dob": "2099-01-01"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "194",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"c2-ue3VX43dASmbpm+YepGpr2KuIH4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1094",
                "error": "Date of birth cannot be in the future"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"dob\":\"2099-01-01\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1094",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1094"
          ],
          "actualErrorCodes": [
            "FIXUSER1094"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_004_Under18Dob_FIXUSER1095_29",
          "caseName": "[NEGATIVE] under-18 DOB",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.054Z",
          "endedAt": "2026-06-23T11:17:09.231Z",
          "durationMs": 177,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "dob": "2012-01-01"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "251",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"fb-cPC0LS13kONH8e+s+M6F4epE/5Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "73",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1095",
                "error": "We appreciate your interest, FD can only be applied for individuals who are 18 years and above"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"dob\":\"2012-01-01\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1095",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1095"
          ],
          "actualErrorCodes": [
            "FIXUSER1095"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_005_InvalidOccupation_FIXUSER1079_30",
          "caseName": "[NEGATIVE] invalid occupation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.231Z",
          "endedAt": "2026-06-23T11:17:09.238Z",
          "durationMs": 7,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "occupation": "Astronaut"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "347",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"15b-XKNh0tvxkzqFmM3b3KRtlnMv4Z4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1079",
                "error": "Invalid Occupation Code. valid values are: Business,Professional,Self Employed,Retired,Housewife,Student,Not Categorized,Agriculture,Public Sector,Private Sector,Government Sector,Salaried\n"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"occupation\":\"Astronaut\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1079",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1079"
          ],
          "actualErrorCodes": [
            "FIXUSER1079"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_006_InvalidAnnualIncome_FIXUSER1053_31",
          "caseName": "[NEGATIVE] invalid annual income",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.238Z",
          "endedAt": "2026-06-23T11:17:09.247Z",
          "durationMs": 9,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "annual_income": "999L"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "184",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"b8-ZR98rvnT+yD4+xlWjy2txAP5Zkk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1053",
                "error": "Annual Income Invalid Value"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"annual_income\":\"999L\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1053",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1053"
          ],
          "actualErrorCodes": [
            "FIXUSER1053"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_007_InvalidMaritalStatus_FIXUSER1007_32",
          "caseName": "[NEGATIVE] invalid marital status",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.247Z",
          "endedAt": "2026-06-23T11:17:09.255Z",
          "durationMs": 8,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "marital_status": "Single"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "219",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"db-/DRG/0/5hDwju6lTlit6aF7u/0A\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1007",
                "error": "Invalid marital status. Valid values: Married,Unmarried,Others"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"marital_status\":\"Single\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1007",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1007"
          ],
          "actualErrorCodes": [
            "FIXUSER1007"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_008_InvalidKin_FIXUSER1005_33",
          "caseName": "[NEGATIVE] invalid kin",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.255Z",
          "endedAt": "2026-06-23T11:17:09.331Z",
          "durationMs": 76,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "kin": "uncle"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"a9-SEaw9gKXUvrEe/Asd63IwqCnjVA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "6",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1005",
                "error": "Invalid kin,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"kin\":\"uncle\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1005",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1005"
          ],
          "actualErrorCodes": [
            "FIXUSER1005"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_009_InvalidKinName_FIXUSER1006_34",
          "caseName": "[NEGATIVE] kin name invalid chars",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.331Z",
          "endedAt": "2026-06-23T11:17:09.337Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "kin_first_name": "ROBERT123"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "174",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"ae-BO7jW1XRX9OMR2GgMX1JClE4Ct4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1006",
                "error": "Invalid kin name,"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"kin_first_name\":\"ROBERT123\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1006",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1006"
          ],
          "actualErrorCodes": [
            "FIXUSER1006"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_010_InvalidMotherName_Empty_FIXUSER1264_35",
          "caseName": "[NEGATIVE] mother_name whitespace",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.338Z",
          "endedAt": "2026-06-23T11:17:09.350Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "mother_name": "   "
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"c4-DFfsagkfP26qOQJeFRxFCh+YjvU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1264",
                "error": "mother name cant be just an empty space"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"mother_name\":\"   \"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1264",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1264"
          ],
          "actualErrorCodes": [
            "FIXUSER1264"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_011_InvalidFatherName_NonAlpha_FIXUSER1252_36",
          "caseName": "[NEGATIVE] father_name invalid chars",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.350Z",
          "endedAt": "2026-06-23T11:17:09.430Z",
          "durationMs": 80,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "father_name": "WAKHARE123"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "216",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"d8-jO+APGhla5EIbTp8nA9bSIAoYgQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1252",
                "error": "Invalid father_name,father_name should be alphabetic string"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"father_name\":\"WAKHARE123\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1252",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1252"
          ],
          "actualErrorCodes": [
            "FIXUSER1252"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_012_InvalidEducation_INVALID_EDUCATION_37",
          "caseName": "[NEGATIVE] education invalid",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.430Z",
          "endedAt": "2026-06-23T11:17:09.444Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "education": "PhD"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "236",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"ec-Obpa3d5sSa2AQeb/hY7x/pk1nd4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": " ",
                "errorCode": "FIXUSER1216",
                "error": "Invalid education, possible values are Under Graduate, Graduate, Post Graduate"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"education\":\"PhD\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1216"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_013_InvalidSource_INVALID_SOURCE_OF_INCOME_38",
          "caseName": "[NEGATIVE] source invalid",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.445Z",
          "endedAt": "2026-06-23T11:17:09.452Z",
          "durationMs": 7,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "source_of_income": "Crypto"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "253",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"fd-XGcJ4EjrKoiXsHBqhidiNxXTpVY\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "5",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": " ",
                "f_error_message": " ",
                "errorCode": "FIXUSER1217",
                "error": "IInvalid source_of_income , possible values are Salary, Business, Investment, Dependent, Other"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"source_of_income\":\"Crypto\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1217"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_014_UnknownField_ForbiddenNonWhitelisted_39",
          "caseName": "[NEGATIVE] unknown field rejected (only `/user`)",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.452Z",
          "endedAt": "2026-06-23T11:17:09.542Z",
          "durationMs": 90,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "unknown_field": 1
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "87",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"unknown_field\":1}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_015_InvalidBoolean_IsAadhaarVerified_String_40",
          "caseName": "[NEGATIVE] boolean sent as string",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.542Z",
          "endedAt": "2026-06-23T11:17:09.557Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "is_aadhaar_verified": "true"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"is_aadhaar_verified\":\"true\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_016_InvalidBoolean_IsBankPresent_Number_41",
          "caseName": "[NEGATIVE] boolean sent as number",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.557Z",
          "endedAt": "2026-06-23T11:17:09.572Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "is_bank_present": 1
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"is_bank_present\":1}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_017_InvalidDate_UserPanVerificationDate_42",
          "caseName": "[NEGATIVE] invalid date string",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 201,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:09.572Z",
          "endedAt": "2026-06-23T11:17:09.669Z",
          "durationMs": 97,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "user_pan_verification_date": "not-a-date"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7650",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"1de2-323F2Kxr1pXOQOU/h70+bZLamSk\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "94",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:09.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": null,
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:09.626Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"user_pan_verification_date\":\"not-a-date\"}'",
          "validations": [
            {
              "description": "HTTP status should be 201",
              "passed": true,
              "message": "Got 200"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_NEG_018_InvalidDate_UserAadhaarVerificationDate_FIXUSER1004_43",
          "caseName": "[NEGATIVE] invalid date string",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:09.669Z",
          "endedAt": "2026-06-23T11:17:09.679Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "user_aadhaar_verification_date": "not-a-date"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "198",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"c6-XTIdyd90X4stMIFkP0R2rKpvhwA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1004",
                "error": "Please enter a valid DOB (Ex. YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"user_aadhaar_verification_date\":\"not-a-date\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1004",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1004"
          ],
          "actualErrorCodes": [
            "FIXUSER1004"
          ]
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_RULE_001_EmailGate_403_WhenRequired_44",
          "caseName": "[POSITIVE] If `email_verification_required=true` and user `is_email_verified=false`, block personal-details submit",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 403,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:09.679Z",
          "endedAt": "2026-06-23T11:17:09.727Z",
          "durationMs": 48,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "occupation": "Public Sector",
            "marital_status": "Unmarried"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7670",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"1df6-qdsjrN3p3Trz+xruFoanEMfBtH8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "45",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:09.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "omvakhare150@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:09.685Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"occupation\":\"Public Sector\",\"marital_status\":\"Unmarried\"}'",
          "validations": [
            {
              "description": "Fixture-dependent PUT /user rule should return documented error or live controlled success",
              "passed": true,
              "message": "Live UAT config accepted the update; documented error fixture is not active"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_RULE_002_DuplicateEmail_FIXUSER1037_45",
          "caseName": "[POSITIVE] Duplicate email mapping",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:09.727Z",
          "endedAt": "2026-06-23T11:17:09.856Z",
          "durationMs": 129,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "duplicate@fixerra.in"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7668",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"1df4-nUdS7JTWhk9DuOcqj1MceKkQXRc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "125",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:09.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "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",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "duplicate@fixerra.in",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:09.739Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"duplicate@fixerra.in\"}'",
          "validations": [
            {
              "description": "Fixture-dependent PUT /user rule should return documented error or live controlled success",
              "passed": true,
              "message": "Live UAT config accepted the update; documented error fixture is not active"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1037"
          ],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_RULE_003_UpdateFailed_FIXUSER1048_46",
          "caseName": "[POSITIVE] Generic failure mapping",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 400,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:09.856Z",
          "endedAt": "2026-06-23T11:17:09.970Z",
          "durationMs": 114,
          "requestHeaders": {
            "Content-Type": "application/json",
            "apikey": "d4****bb"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "7660",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"1dec-TnGVHat1FfIy91aSk+yG2ULwmO4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "111",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "User Updated",
            "payload": {
              "createdAt": "2025-03-12T08:42:15.000Z",
              "updatedAt": "2026-06-23T11:17:09.000Z",
              "deleted_at": null,
              "createdBy": null,
              "updatedBy": null,
              "deletedBy": null,
              "isActive": true,
              "f_user_id": "00024bba-cc1f-4ea4-b5bd-312b5d982b58",
              "profile_photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADIAKADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDpKRhxS4obgVkSRjig9aUCgjvRcBppKKKQBS0mDRQA9eTTjwKRRilb1pgRGilNFIBKKcRxTaACiiimAlFJmjrikBNGflp2OOaZH05pzEAZBpCH4pD79KdSEZFWMZ04oPSjGOe1DdqQDCKTFPppOePSkMSjp1rF8ReJLbQYFBAmun+5CGwcf3j6D+Z/EjzvVPGGr38h23LQIekcPygfj1Pbr6dqaQHsG9QuSQB3J4FNE8My5ikRx/sHP8q8BmmmmlaWWRmkPBdiST+NREt6iqsFj6FCk+31oA56V8+28strKJreZoZR0eNirD8RXQaZ431rTSqvcfaogfu3GXPv82c5+uR7UrBZnsZGKjrmNI8faXqJWK7zZTnp5jZjPPZ+3bqB+NdQTnkUthCUhpaSgAxRiloHWkA9EDdTTjGKap9OtSjnkmkAtNJp1NIqhjSeOlHOOlFKfu0AMPFZkuuafDLND5skkkX3xFBJIE6/eZVIXoep7H0NGta1Bo1i9xJhnAykeeXPA/AcjJ968nl8VX8NmLa0lNspyZGjOHdj1Yt1z0GRzgDJOKErgRa9fi51e6lEnmbpCQ2chhng57jGMe2B0ArKMxA479TUtrbyX87MxJPUk81qDRQCMHj0puSRcYN7GJ53HTimmQ+lbbaSqnmmf2anoaXtEV7NmJvJ68Ck3gHvWs+ngDoKqyWgAoVRC5GiskvvXXeF/Gc+jyJa3jNNp7cerQ/7vt7fl6HjpIyhyKVHzx0FVuQ13PoSGaO4hSaGRZInAZHU5DA9CKk/GvN/hzrTJcyaTNIAjgvCG7MOoH1GT+Br0gmpJCnKOaZxT060DJApx3pM46gZ9xTxz3pr8mkIlpp6U8000xkZHNRXNzFaWs1zMSI4kLsR6CpWNZXiCNJdCulfJAUPgd9pDAfQ4wfahAeUa9rM+q3kk8xwucKinIAHQe/6euMkk883zMcVbum2pt/CqkYywxVoZ0miwBLcNjk1sDAGaraaoNug6cVak2KcMyg+ma527s6YqyIJgDzVc9OBV1gjrkMD+NQbFNIspSLx061VkXAxitFwuDnoKpzPGD96hEtGbNBuB4rNkjMTc1tmWHpmobyBJLYuhBx6VpFtbmUkmU7eZ4LiK4idkkRgykHBBHQivdLC7+26fbXRwDNErnHQZGa8FiYqcGva9DvRcaHYyZyTAgbjHIGD+tWzFmvvp6NVbzVp6SLmp0As7/Sk3UzeCcCngigC4elMI4p5HNMI5qrARNWV4gLf2FflCQwt3II7fKa1n4qrMA6spHBGMUwPBrobxwMEdRVaPgj3Namr2M1hqUsLowCsQrEfeHY1UtYDLewpjrIo/WmUdLDHKY0ijbYuOWHWoLq2tI1I8x2cDLYOePWtqS0Y25Efyn1rGk0hmglExViSNm5jge+Mck/UVzRep0taGV5yIwWKeTH1rXsPMlTO/cMVQh051V0K5DHqVxj6VtWNg8cOOgx6cmqm0EE2ZF7Iy7gGxWVv3HLB2ravoAZCKpLb4Rk6buvvRCSFUi7leOWLH+rIA74q9FDHKDs6MMECo47ZlhMQz5bHJHrViCExHgYFEmuhMU+pz7IYpmRuqnBr1bwqnk+HLRSTyC2M+pJrz6+tgL4uADuTdj36V3Phe9N5oyqQA0LeWQPTt/n2qnK6MpRa1OiDU5SfWoFJqZDUklhXIHWpBMarg07NAG6SBTGNKfrTX6VsIhc5qBxUrdaY4yKBnO+KtOhvNGuHaJWlUAq+ORg/4Z/OuDtrFLfULI5+8STn2FepXkAubSWEnG9SufTNebyRuup2+QfkJR/VTyKiTNqaTizcCeYAufwqOeN1Urt9vpRE+2TNWJJQUyc1z7M6UZ6qkQ3yfWp4i8pVguAemTgVTuA0zbF6Go5ftbTJum8qGMdFwdx9809x7EepwjeTuX86zAu19rd+h9adeF5QxaT5c/w8VDArnbubIHQmhRsRJpvQtKuDjtSs+3gUBucU12GaT3F0ILwgvEcdQRXVeD7cwabJKwx5z5X6Dj+ea5S5XeYwM969BtIfs9rFCvRFC/pWiMJvSxc6VIh7VCuT3qVQfWmZE4paaM4p2DQBuHrTXHAFTMKiNbCICMnpTWGFqYiomFAyuy1yGv6cY7trlMJHJgs3bOeldk9QkdaTVyoy5Xc4EsyhWHQjrT/OJTJ5FW9VgMOoyofut84+h/8Ar5rNyqNjP4VzyVmdcHdE6hUXe3X0rOuLsGUpFG1xIOSF6LUt1mYbFOAetQESW8Xl24Cj6Zpxtuxtu5UnE7HCWpUdxgD+tVPNMbbWyh9+hqw4vSSWcfTFVmyxw+D68VWhnLyJg+7kGng7jUEY28dqmjBMgwMk8VNhX0N3RdNinb7RKCwQ4Ve2a6cHIqtY2ZtLGKNvv4y31PWrIFOxg3dj1PNToarr1qwlBJKDT6jFPBpgdE/BAqFhzUz9aYRk81uBERUTjNWCvFREUAV3GRUOKskVUvbiKytJbqYkRxjLYGTSuBi+JLbfZrcKPmibB+h/+viuReX1rVuPGMOpiSxjs2RJD8srSc4Bz93Ht61iXHyMazlZu5vTbRJG6k4JqZ5oo0yBk1lmTHsaY07EYOfwqLGnOTzTkk+pqizgsc4pJJNw75qsWwT1Jp2Jci0XArovCemG8uzdyr+6hPy57t/9b/CuTUkn3re0XxHLpFwlttVraRsuCOQfXNNIzk20egyJxVYpg1dR0niWRDlWGRUbpQ1fUyIAuBUq5xSdOKerCkA8UoHtQDS5pgdIwpmKmIphFbgRkVC4qdiqKWYhVHcnAqm97bMSI5VkYdkOfbH6ipbS3ATBLAAZJ4rM12E3FpJaj7silR9a1Lm+stLgWe8uYoASQpkYDJAzgep+lYFz4j0W9g2Q3uZ9pZCIX454524rCpO+xpFWPL7RgLraYwjoTnnnIrVdwwwwyKueKdL+yXC30KbcYWVB2I4/+tWYHEkYYHrVJpq6KRXmjK8o1U2kkXquavPnnmq0iE9KY7FR5yf4TTMsxyeKldGB5phUijQVmOUhadbRNdalEACQOv0qLB711vhTRJJLVr11wHJ2Z7qOM/nmlJ2VxM6fSpjFbxKxO3bg1q/I4yCK5d9b0uyme2lnKNE20/u2Iz35Aq9DqMF1CZbK5WQKcMB2/CsITcdGtCWrmu0Q7GmeXg85rOivZwBvwwP8Q4qwl6C21sg1pzxYrMuBR2zSgfWmLIp7ipAatNEnQ3F0kC5PzH0FUZ7+Ty96kIM49ahjYTkhjw3Sq18pSxZO4bNZyqyZpyoS9vXmtVRjks/Ix2qDBtL0wxqoBIK5HHXNRRN5sYz1XFX9Qh3wx3CfeGM1m23qxmZcaINQ8RrNqFzLcRoP3cT4CL7ADj/Izmrt3oUUdmhs7dN9u5cRgY3q33lz79R7gelWgRMkNyo+YH5sVoxPlgexFMDAvFhu7ZGZFMLL98jGPZh2/wD1/jxup+Gp7IyS2GbiAEsY1BLIM/qP8+pr0O4tvstw00S5jc5kj9T6j3pqQRhBJbglP7g/h+n+FEW1sB5ECH7fhQIyDXpGq+G7HV0aZNsNyefNQfeP+0O/16/yrir3TrnTbn7PdptY8qw+6w9Qa0U7mkbMypEzyarSQk9BWq8Q7Vf03SEnAubnK2+flUcNKfRfbjr/APXwcxTjbcxLLRrq/JESqsYOHlkO1E+p/p1rsZr9giQ6WHitIVEce4DMmBgfhU5tnuykQQQ2sY4iXoP8f8k+92O0REDBQAOBWU5t6IybMAaLHKCJPmfadzHqSTkmpYdFjttssLFH27Wx3rbWLcCcdaV4trBPwrO7EVQuCPRuooMeZ0I7GrU0HluimpYLbcxYnAFAisAewqVXZOmaWE/M49DmpkRXkPHFCuthli2k+Veehq/exCazLAdRWVbZMZb3rYs2EsRjb0qxnOwny59p6VvW4E1psbnisS+j8q8YVqabKSoBpREQwE28zwt909KvhsAY+tR3lvu+dRyDUMEmSVbqKpAaU/zRBvWs/DQv5kf3T1FXYTvtmU9RVSJsOUNAEhjWbMsTBZOpB6N9f8apX9rBqFo9veRnaP4v4oz6j/OKt7CjZFPdtybmXkd6AOCTQZLa+ZLsiSBOY9hx5/p7qPX8h6jbjhQHLuu4DHyDhR2VR2HT/OKrmG5k1+dvKIgGVHzZXGBjA7H19SSa1IIFX5sd6TdxybY1FyAFXag6CiQFiFFTmkAAOaQhuwRqi9ycmmqu+6H1qTaWcGnKmyUE9cUWERXwywNTwjFuCe4qCcbyMVaJCwqpGDijqMyouLtlPcmrMJwz59KqMdmofU5qdzsLGpAn0r5ppYuoIyKuwM0cp55U1n6E+bjH+zitA/8AHwwHU1YFTWUH20sBw3NP07ipdVjJ8o/7A/lUNodgBPc4oW4M2Uw/ynvWdcw+VMxHrV9W2utJdxh8kVQFexlDFlNQz/u7g/WokbybjPqas3ozhx3FICRGBFLIhaJwOOM1XifKKfUVbiIfg0wMuCIGd8d0VvzAqaNS3mccg5+uec/nn8qS3UJOoJyxDKfqCcfoBT4vkvcZ4dSMfQ//AFzSEQSKVNIvTkVbukwpNVI/u56ipGOX/WAetSyqAQagkBG1x64pzvnBNMBjJhqdcMQAOMVKAHAqrc7ufakBm3RIuI3HODVy5GF/DNVJfmwPerN04Cx5PVcGp6AR6LMIdQ2t34Fbe3GoEMeGGaKKtbICS+TfbxkehrOJKxAejZoopvcGacTho0b25q5gOh6UUUxIx7pMOfrUzHzLMHuKKKQyGE/uselWbd8OPrRRQBDIghvJDnnzdxGegIAH8jTpMiaF14G4Z/UfzIoooETXKkpj2rOQ7SR2oopMZJsMiEBsYIPSkmUqMEflRRQxEEcxjIyeAakkYSZ560UUkBmTLtJIqG5mLwK3ocUUVKH1P//Z",
              "profile_photo_file_name": "Photograph.jpg",
              "pan": null,
              "email": "om@gmail.com",
              "password": "",
              "sub_account": "",
              "gender": "M",
              "salutation": "MR",
              "first_name": "Arpan",
              "middle_name": "",
              "last_name": "Kayastha",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "249a22814bf213a7ff2e68cfa58da9d3:f20c3c0975ece5a088c861803901c0e1",
              "code": "91",
              "dob": "249a22814bf213a7ff2e68cfa58da9d3:0d54fbcbe634d0cf9ea40abe20b37b0f",
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "XXXXXXXX7520",
              "user_activation_date": null,
              "user_registration_date": "2025-03-12T08:42:15.510Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "Public Sector",
              "annual_income": "Upto 5L Per Annum",
              "user_tax_status": "",
              "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
              "is_pan_verified": true,
              "manual_pan_verified": null,
              "is_email_verified": true,
              "is_aadhaar_verified": true,
              "is_nominee_present": true,
              "is_ckyc_verified": false,
              "is_bank_present": false,
              "kin": "father",
              "kin_first_name": "ROBERT",
              "kin_middle_name": "BABASAHEB",
              "kin_last_name": "DOE",
              "marital_status": "Unmarried",
              "kapture_id": "",
              "user_aadhaar_verification_date": "2025-03-12T12:54:07.000Z",
              "user_pan_verification_date": null,
              "user_nominee_update_date": "2025-12-03T13:43:46.000Z",
              "user_bank_account_update_date": null,
              "user_email_verification_date": "2026-06-22T14:21:19.000Z",
              "profile_updated_at": "2026-06-23T11:17:09.866Z",
              "mother_name": "Jane Doe",
              "education": "Graduate",
              "source_of_income": "Salary",
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2025-03-12T14:12:15.000Z",
              "is_pan_consent_checked": false,
              "pan_consent_checked_date": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "Fixture-dependent PUT /user rule should return documented error or live controlled success",
              "passed": true,
              "message": "Live UAT config accepted the update; documented error fixture is not active"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [
            "FIXUSER1048"
          ],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_PUT_USER_TC_PUTUSER_RULE_004_Unauthorized_NoJWT_47",
          "caseName": "[POSITIVE] Missing JWT",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:09.970Z",
          "endedAt": "2026-06-23T11:17:09.975Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "email": "om@gmail.com"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "issuer_type": "BANK"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:09 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&issuer_type=BANK' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"om@gmail.com\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "PUT",
            "guards": "1) Auth (Actual Guards)",
            "authHint": "1) Auth (Actual Guards)"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_GET_USER_TC_PI_USER_001_Load_Success_0",
          "caseName": "[POSITIVE] Personal info prefill works",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:09.975Z",
          "endedAt": "2026-06-23T11:17:10.027Z",
          "durationMs": 52,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "2146",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"862-3VvJpDslrKLmINXtu280gZBAotc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "49",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "qa.user@fixerra.in",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "918668336629",
              "code": "91",
              "dob": null,
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": true,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": "2026-06-23T11:17:05.000Z",
              "user_email_verification_date": "2026-06-23T11:17:07.000Z",
              "profile_updated_at": "2026-06-23T11:17:04.000Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "ssfb": {
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "father_name": "TEST FATHER"
              },
              "usfb": {
                "dob": "1992-04-30",
                "father_name": "TEST FATHER",
                "email": "email.gate@fixerra.test",
                "is_email_verified": true,
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "full_name": "DILIP KALU RATHOD"
              },
              "ausfb": {
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "source_of_income": "Salary",
                "email": "personal.ausfb@fixerra.test",
                "marital_status": "Unmarried",
                "father_name": "TEST FATHER"
              },
              "is_personal_details": {
                "BAJ": false,
                "MAH": false,
                "SHRI": false
              }
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "GET",
            "guards": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |",
            "authHint": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_GET_USER_TC_PI_USER_002_EmailGate_False_1",
          "caseName": "[POSITIVE] After OTP, verify `is_email_verified=false` blocks submit",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:10.027Z",
          "endedAt": "2026-06-23T11:17:10.066Z",
          "durationMs": 39,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "2146",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"862-3VvJpDslrKLmINXtu280gZBAotc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "36",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "qa.user@fixerra.in",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "918668336629",
              "code": "91",
              "dob": null,
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": true,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": "2026-06-23T11:17:05.000Z",
              "user_email_verification_date": "2026-06-23T11:17:07.000Z",
              "profile_updated_at": "2026-06-23T11:17:04.000Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "ssfb": {
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "father_name": "TEST FATHER"
              },
              "usfb": {
                "dob": "1992-04-30",
                "father_name": "TEST FATHER",
                "email": "email.gate@fixerra.test",
                "is_email_verified": true,
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "full_name": "DILIP KALU RATHOD"
              },
              "ausfb": {
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "source_of_income": "Salary",
                "email": "personal.ausfb@fixerra.test",
                "marital_status": "Unmarried",
                "father_name": "TEST FATHER"
              },
              "is_personal_details": {
                "BAJ": false,
                "MAH": false,
                "SHRI": false
              }
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "GET",
            "guards": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |",
            "authHint": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_GET_USER_TC_PI_USER_003_IssuerOverlay_SSFB_2",
          "caseName": "[POSITIVE] SSFB overlay present if available",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:10.066Z",
          "endedAt": "2026-06-23T11:17:10.156Z",
          "durationMs": 90,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "2146",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"862-3VvJpDslrKLmINXtu280gZBAotc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "87",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "createdAt": "2026-06-23T11:15:37.000Z",
              "isActive": true,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "profile_photo": null,
              "profile_photo_file_name": null,
              "pan": null,
              "email": "qa.user@fixerra.in",
              "password": "",
              "sub_account": "",
              "gender": "",
              "salutation": "",
              "first_name": "DILIP",
              "middle_name": "KALU",
              "last_name": "RATHOD",
              "pan_first_name": null,
              "pan_middle_name": null,
              "pan_last_name": null,
              "phone": "918668336629",
              "code": "91",
              "dob": null,
              "care_of": "",
              "referral_code": "",
              "masked_aadhaar": "",
              "user_activation_date": null,
              "user_registration_date": "2026-06-23T11:15:37.876Z",
              "user_deactivation_date": "",
              "custodial_account": "",
              "occupation": "",
              "annual_income": "",
              "user_tax_status": "",
              "father_name": "",
              "is_pan_verified": false,
              "is_email_verified": true,
              "is_aadhaar_verified": false,
              "is_nominee_present": false,
              "is_ckyc_verified": false,
              "is_bank_present": true,
              "kin": "",
              "kin_first_name": "",
              "kin_middle_name": "",
              "kin_last_name": "",
              "marital_status": "",
              "kapture_id": "",
              "user_aadhaar_verification_date": null,
              "user_pan_verification_date": null,
              "user_nominee_update_date": null,
              "user_bank_account_update_date": "2026-06-23T11:17:05.000Z",
              "user_email_verification_date": "2026-06-23T11:17:07.000Z",
              "profile_updated_at": "2026-06-23T11:17:04.000Z",
              "mother_name": null,
              "education": null,
              "source_of_income": null,
              "is_broker": false,
              "is_aadhaar_xml_present": false,
              "created_at_ist": "2026-06-23T16:45:37.000Z",
              "ssfb": {
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "father_name": "TEST FATHER"
              },
              "usfb": {
                "dob": "1992-04-30",
                "father_name": "TEST FATHER",
                "email": "email.gate@fixerra.test",
                "is_email_verified": true,
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "full_name": "DILIP KALU RATHOD"
              },
              "ausfb": {
                "annual_income": "15L - 25L Per Annum",
                "mother_name": "TEST MOTHER",
                "education": "Graduate",
                "occupation": "Salaried",
                "source_of_income": "Salary",
                "email": "personal.ausfb@fixerra.test",
                "marital_status": "Unmarried",
                "father_name": "TEST FATHER"
              },
              "is_personal_details": {
                "BAJ": false,
                "MAH": false,
                "SHRI": false
              }
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "GET",
            "guards": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |",
            "authHint": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_PI_GET_USER_TC_PI_USER_004_Unauth_NoJWT_3",
          "caseName": "[POSITIVE] Missing JWT rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:10.156Z",
          "endedAt": "2026-06-23T11:17:10.169Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER.md",
          "apiMeta": {
            "endpoint": "/user",
            "method": "GET",
            "guards": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |",
            "authHint": "| Auth | Bearer JWT (partner headers may be present but are not strictly enforced when JWT exists) |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_001_0",
          "caseName": "[POSITIVE] Verification success — SSFB",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:10.169Z",
          "endedAt": "2026-06-23T11:17:10.274Z",
          "durationMs": 105,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "account_holder_full_name": "John A Doe",
            "account_holder_first_name": "John",
            "account_holder_middle_name": "A",
            "account_holder_last_name": "Doe",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "17",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"11-z5EWd6k6y6k0MQWTeNizVwP8d3Y\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "102",
            "server": "envoy"
          },
          "responseBody": {
            "verified": true
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"account_holder_full_name\":\"John A Doe\",\"account_holder_first_name\":\"John\",\"account_holder_middle_name\":\"A\",\"account_holder_last_name\":\"Doe\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": true,
              "message": "Got 201"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_002_1",
          "caseName": "[POSITIVE] Verification success — bank_code=true returns f_user_bank_id",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.274Z",
          "endedAt": "2026-06-23T11:17:10.287Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "bank_code": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "656",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"290-9fqrMe9DRoxv5Ea+T5FbJjk174E\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1023",
                "error": "Account number must be a numeric string"
              },
              {
                "f_error_reason": "account is required",
                "f_error_message": "account is required",
                "errorCode": "FIXUSER1196",
                "error": "account is required"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1024",
                "error": "IFSC code is required and must be alphanumeric"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB&bank_code=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 400"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": false,
              "message": "Response contains error indicators"
            }
          ],
          "failureReason": "Expected one of 200/201, got 400; Response contains error indicators",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1197",
            "FIXUSER1023",
            "FIXUSER1196",
            "FIXUSER1024"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_003_2",
          "caseName": "[POSITIVE] account_holder_name query param fallback",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.287Z",
          "endedAt": "2026-06-23T11:17:10.334Z",
          "durationMs": 47,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "account_holder_name": "John+Doe"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "259",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"103-caE6g26w6c41XgJ2hLvLJS/VGe0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "43",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1220",
                "error": "Either account_holder_full_name or account_holder_first_name and account_holder_last_name are required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB&account_holder_name=John%2BDoe' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 400"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": false,
              "message": "Response contains error indicators"
            }
          ],
          "failureReason": "Expected one of 200/201, got 400; Response contains error indicators",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1220"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_004_3",
          "caseName": "[POSITIVE] Missing Origin/Referer allowed",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.334Z",
          "endedAt": "2026-06-23T11:17:10.349Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "656",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"290-9fqrMe9DRoxv5Ea+T5FbJjk174E\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1023",
                "error": "Account number must be a numeric string"
              },
              {
                "f_error_reason": "account is required",
                "f_error_message": "account is required",
                "errorCode": "FIXUSER1196",
                "error": "account is required"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1024",
                "error": "IFSC code is required and must be alphanumeric"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 400"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": false,
              "message": "Response contains error indicators"
            }
          ],
          "failureReason": "Expected one of 200/201, got 400; Response contains error indicators",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1197",
            "FIXUSER1023",
            "FIXUSER1196",
            "FIXUSER1024"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_005_4",
          "caseName": "[POSITIVE] USFB issuer routing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.349Z",
          "endedAt": "2026-06-23T11:17:10.361Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "259",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"103-caE6g26w6c41XgJ2hLvLJS/VGe0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1220",
                "error": "Either account_holder_full_name or account_holder_first_name and account_holder_last_name are required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 400"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": false,
              "message": "Response contains error indicators"
            }
          ],
          "failureReason": "Expected one of 200/201, got 400; Response contains error indicators",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1220"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_006_5",
          "caseName": "[POSITIVE] IIB issuer routing",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.361Z",
          "endedAt": "2026-06-23T11:17:10.373Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "IIB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "259",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"103-caE6g26w6c41XgJ2hLvLJS/VGe0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1220",
                "error": "Either account_holder_full_name or account_holder_first_name and account_holder_last_name are required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=IIB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 400"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": false,
              "message": "Response contains error indicators"
            }
          ],
          "failureReason": "Expected one of 200/201, got 400; Response contains error indicators",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1220"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N001_6",
          "caseName": "[NEGATIVE] Missing account → FIXUSER1196",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.373Z",
          "endedAt": "2026-06-23T11:17:10.429Z",
          "durationMs": 56,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "ifsc": "HDFC0004888"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "530",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"212-pii2YOshkYqUsK2JBzKz3+lLFGM\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "53",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1023",
                "error": "Account number must be a numeric string"
              },
              {
                "f_error_reason": "account is required",
                "f_error_message": "account is required",
                "errorCode": "FIXUSER1196",
                "error": "account is required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"ifsc\":\"HDFC0004888\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1196",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1196"
          ],
          "actualErrorCodes": [
            "FIXUSER1197",
            "FIXUSER1023",
            "FIXUSER1196"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N002_7",
          "caseName": "[NEGATIVE] Non-numeric account → FIXUSER1023",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.429Z",
          "endedAt": "2026-06-23T11:17:10.442Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "ABC",
            "ifsc": "HDFC0004888"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "393",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"189-k3AAdBhAHh9ncEuIsMCMxnWOydg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1023",
                "error": "Account number must be a numeric string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"ABC\",\"ifsc\":\"HDFC0004888\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1023",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1023"
          ],
          "actualErrorCodes": [
            "FIXUSER1197",
            "FIXUSER1023"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N003_8",
          "caseName": "[NEGATIVE] account length 8 (below min 9) → FIXUSER1197",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:10.442Z",
          "endedAt": "2026-06-23T11:17:10.453Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "12345678",
            "ifsc": "HDFC0004888"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "274",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:10 GMT",
            "etag": "W/\"112-lr0Sdapd3O1wYLEgipothBuxrCw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Account length must be between 9 and 18",
                "f_error_message": "Account length must be between 9 and 18",
                "errorCode": "FIXUSER1197",
                "error": "Account length must be between 9 and 18"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"12345678\",\"ifsc\":\"HDFC0004888\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 400, body.statusCode=400)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1197",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1197"
          ],
          "actualErrorCodes": [
            "FIXUSER1197"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N004_9",
          "caseName": "[NEGATIVE] account length 19 (above max 18) → FIXUSER1197",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:10.454Z",
          "endedAt": "2026-06-23T11:17:11.085Z",
          "durationMs": 631,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "1234567890123456789",
            "ifsc": "HDFC0004888"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "628",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"1234567890123456789\",\"ifsc\":\"HDFC0004888\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1197",
              "passed": false,
              "message": "None of [FIXUSER1197] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1197] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1197"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N005_10",
          "caseName": "[NEGATIVE] Missing ifsc → FIXUSER1196",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.085Z",
          "endedAt": "2026-06-23T11:17:11.165Z",
          "durationMs": 80,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "67",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1196",
              "passed": false,
              "message": "None of [FIXUSER1196] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1196] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1196"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N006_11",
          "caseName": "[NEGATIVE] Invalid ifsc format → FIXUSER1024",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.166Z",
          "endedAt": "2026-06-23T11:17:11.302Z",
          "durationMs": 136,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "BAD"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "133",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"BAD\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1024",
              "passed": false,
              "message": "None of [FIXUSER1024] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1024] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1024"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N007_12",
          "caseName": "[NEGATIVE] account_holder_full_name with digits → FIXUSER1234",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.302Z",
          "endedAt": "2026-06-23T11:17:11.343Z",
          "durationMs": 41,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "account_holder_full_name": "John2 Doe"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "39",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"account_holder_full_name\":\"John2 Doe\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1234",
              "passed": false,
              "message": "None of [FIXUSER1234] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1234] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1234"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N008_13",
          "caseName": "[NEGATIVE] account_holder_first_name invalid chars → FIXUSER1199",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.343Z",
          "endedAt": "2026-06-23T11:17:11.419Z",
          "durationMs": 75,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "account_holder_first_name": "Jo$n"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "72",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"account_holder_first_name\":\"Jo$n\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1199",
              "passed": false,
              "message": "None of [FIXUSER1199] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1199] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1199"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N009_14",
          "caseName": "[NEGATIVE] Name mismatch → FIXUSER1055",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.419Z",
          "endedAt": "2026-06-23T11:17:11.488Z",
          "durationMs": 69,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "SSFB",
            "account_holder_name": "CompletelyDifferentName"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "65",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB&account_holder_name=CompletelyDifferentName' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1055",
              "passed": false,
              "message": "None of [FIXUSER1055] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1055] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1055"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N010_15",
          "caseName": "[NEGATIVE] Empty body → FIXUSER1196",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.488Z",
          "endedAt": "2026-06-23T11:17:11.532Z",
          "durationMs": 44,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "41",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1196",
              "passed": false,
              "message": "None of [FIXUSER1196] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1196] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1196"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_N011_16",
          "caseName": "[NEGATIVE] account is null → FIXUSER1196",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.532Z",
          "endedAt": "2026-06-23T11:17:11.569Z",
          "durationMs": 37,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": null,
            "ifsc": "HDFC0004888"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "34",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":null,\"ifsc\":\"HDFC0004888\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1196",
              "passed": false,
              "message": "None of [FIXUSER1196] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1196] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1196"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_E001_17",
          "caseName": "[EDGE] account length 9 (min boundary)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.569Z",
          "endedAt": "2026-06-23T11:17:11.595Z",
          "durationMs": 26,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "123456789",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "23",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"123456789\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 429"
            }
          ],
          "failureReason": "Expected one of 200/201, got 429",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_E002_18",
          "caseName": "[EDGE] account length 18 (max boundary)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.595Z",
          "endedAt": "2026-06-23T11:17:11.631Z",
          "durationMs": 36,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "123456789012345678",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "32",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"123456789012345678\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 429"
            }
          ],
          "failureReason": "Expected one of 200/201, got 429",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_E003_19",
          "caseName": "[EDGE] account_holder_last_name empty string → accepted",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.631Z",
          "endedAt": "2026-06-23T11:17:11.673Z",
          "durationMs": 42,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "account_holder_first_name": "John",
            "account_holder_last_name": ""
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "38",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"account_holder_first_name\":\"John\",\"account_holder_last_name\":\"\"}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 429"
            }
          ],
          "failureReason": "Expected one of 200/201, got 429",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_E004_20",
          "caseName": "[EDGE] account_holder_last_name \".\" → accepted",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.673Z",
          "endedAt": "2026-06-23T11:17:11.731Z",
          "durationMs": 58,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "50100816151727",
            "ifsc": "HDFC0004888",
            "account_holder_first_name": "John",
            "account_holder_last_name": "."
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "23",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"50100816151727\",\"ifsc\":\"HDFC0004888\",\"account_holder_first_name\":\"John\",\"account_holder_last_name\":\".\"}'",
          "validations": [
            {
              "description": "HTTP status should be one of 200/201",
              "passed": false,
              "message": "Expected one of 200/201, got 429"
            }
          ],
          "failureReason": "Expected one of 200/201, got 429",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_E005_21",
          "caseName": "[EDGE] SSFB invalid beneficiary → FIXUSER1454",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "failed",
          "scenarioType": "edge",
          "expectedStatus": 400,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.731Z",
          "endedAt": "2026-06-23T11:17:11.776Z",
          "durationMs": 45,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "account": "00000000000",
            "ifsc": "HDFC0004888",
            "consent_checked": true
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "42",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"account\":\"00000000000\",\"ifsc\":\"HDFC0004888\",\"consent_checked\":true}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 400 or body statusCode=400)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1454",
              "passed": false,
              "message": "None of [FIXUSER1454] in response"
            }
          ],
          "failureReason": "None of [FIXUSER1454] in response",
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1454"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_E006_22",
          "caseName": "[EDGE] Rate limit exceeded → FIXUSER1517",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 429,
          "httpStatus": 429,
          "startedAt": "2026-06-23T11:17:11.776Z",
          "endedAt": "2026-06-23T11:17:11.821Z",
          "durationMs": 45,
          "requestHeaders": {
            "Content-Type": "application/json",
            "x-partner-key": "38****ef",
            "x-partner-code": "tradingquants-dev",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "_qa_negative_test": true,
            "_tc_id": "TC_BANKV2_E006"
          },
          "requestQuery": {
            "issuer_code": "SSFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "383",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"17f-91hFlNdSo+34WGa1AO18Zs1lvww\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "42",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 429,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Bank verification rate limit exceeded",
                "f_error_message": "You have reached the maximum limit for bank verification attempts. Please try again after 24 hours.",
                "errorCode": "FIXUSER1517",
                "error": "User has exceeded the maximum allowed bank verification attempts within the 24-hour window"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC_BANKV2_E006\"}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 429 or body statusCode=429)",
              "passed": true,
              "message": "Error confirmed (HTTP 429, body.statusCode=429)"
            },
            {
              "description": "Response should contain error code(s): FIXUSER1517",
              "passed": true,
              "message": "Found expected error code(s) in response"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [
            "FIXUSER1517"
          ],
          "actualErrorCodes": [
            "FIXUSER1517"
          ]
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_S001_23",
          "caseName": "[POSITIVE] No JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:11.821Z",
          "endedAt": "2026-06-23T11:17:11.831Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank' \\\n  -H 'Content-Type: application/json' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_S002_24",
          "caseName": "[POSITIVE] Expired JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:11.831Z",
          "endedAt": "2026-06-23T11:17:11.836Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_POST_V2_SIGNZY_BANK_TC_BANKV2_S003_25",
          "caseName": "[POSITIVE] Invalid JWT → 401",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/v2/signzy/bank",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:11.837Z",
          "endedAt": "2026-06-23T11:17:11.843Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer bad.jwt"
          },
          "requestPayload": {},
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_POST_V2_SIGNZY_BANK.md",
          "apiMeta": {
            "endpoint": "/v2/signzy/bank",
            "method": "POST",
            "guards": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `Use",
            "authHint": "**Auth:** Combined guard chain: `PartnerGuard` → `PartnerWithUserGuard` → `PartnerErrorGuard` → `UserJwtGuard`. `Authori",
            "summary": "- **API Name:** Bank Verification v2"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_001_List_Success_NBFC_Default_0",
          "caseName": "[POSITIVE] NBFC/local list returns array payload",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:11.843Z",
          "endedAt": "2026-06-23T11:17:11.854Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1329",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"531-n/cNxemg9WDmFYDDRJCHCYij7Es\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 70484,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:6a9c9fafc299d2642bf9ba868c19c934",
                "verfied": true,
                "ifsc": "IDFB0040112",
                "bank_name": "IDFC FIRST Bank",
                "is_default": false,
                "acc_holder_name": "QA Test User",
                "effective_dt": "2026-06-23T11:17:05.000Z",
                "branch_name": "THANE BRANCH",
                "micr_code": "400751011",
                "name_match_score": "",
                "address": "GROUND FLOOR, SHOP NO 6  7, P.E.S.NEW ENGLISH BUILDING, DR.RAMESH PRADHAN ROAD, OFF. RAM MARUTI CROSS ROAD, THANE WEST, THANE 400602, TOLL FREE NUMBER 18004194332",
                "state": "MAHARASHTRA",
                "district": "THANE",
                "deleted_at": null
              },
              {
                "id": 70485,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:34a901981403cf613e08b3fcdb9abf00",
                "verfied": true,
                "ifsc": "HDFC0004888",
                "bank_name": "HDFC Bank",
                "is_default": true,
                "acc_holder_name": "John A Doe",
                "effective_dt": "2026-06-23T11:17:10.000Z",
                "branch_name": "DHYARI",
                "micr_code": "411240063",
                "name_match_score": "",
                "address": "HDFC BANK LTD GROUND AND MEZZANINE FLOOR SRNO60 7 1A 3 VADGAON TAL HAVELI PUNE MAHARASHTRA 411051",
                "state": "MAHARASHTRA",
                "district": "PUNE",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_002_List_Success_NBFC_Pagination_Valid_1",
          "caseName": "[POSITIVE] Valid `page/limit` doesn’t crash",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:11.854Z",
          "endedAt": "2026-06-23T11:17:11.930Z",
          "durationMs": 76,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "page": "1",
            "limit": "10"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1329",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"531-n/cNxemg9WDmFYDDRJCHCYij7Es\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 70484,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:6a9c9fafc299d2642bf9ba868c19c934",
                "verfied": true,
                "ifsc": "IDFB0040112",
                "bank_name": "IDFC FIRST Bank",
                "is_default": false,
                "acc_holder_name": "QA Test User",
                "effective_dt": "2026-06-23T11:17:05.000Z",
                "branch_name": "THANE BRANCH",
                "micr_code": "400751011",
                "name_match_score": "",
                "address": "GROUND FLOOR, SHOP NO 6  7, P.E.S.NEW ENGLISH BUILDING, DR.RAMESH PRADHAN ROAD, OFF. RAM MARUTI CROSS ROAD, THANE WEST, THANE 400602, TOLL FREE NUMBER 18004194332",
                "state": "MAHARASHTRA",
                "district": "THANE",
                "deleted_at": null
              },
              {
                "id": 70485,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:34a901981403cf613e08b3fcdb9abf00",
                "verfied": true,
                "ifsc": "HDFC0004888",
                "bank_name": "HDFC Bank",
                "is_default": true,
                "acc_holder_name": "John A Doe",
                "effective_dt": "2026-06-23T11:17:10.000Z",
                "branch_name": "DHYARI",
                "micr_code": "411240063",
                "name_match_score": "",
                "address": "HDFC BANK LTD GROUND AND MEZZANINE FLOOR SRNO60 7 1A 3 VADGAON TAL HAVELI PUNE MAHARASHTRA 411051",
                "state": "MAHARASHTRA",
                "district": "PUNE",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?page=1&limit=10' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_003_List_Success_NBFC_Pagination_Invalid_Autofix_2",
          "caseName": "[POSITIVE] Invalid page/limit are reset by controller",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:11.930Z",
          "endedAt": "2026-06-23T11:17:11.942Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "page": "0",
            "limit": "0"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1329",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"531-n/cNxemg9WDmFYDDRJCHCYij7Es\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 70484,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:6a9c9fafc299d2642bf9ba868c19c934",
                "verfied": true,
                "ifsc": "IDFB0040112",
                "bank_name": "IDFC FIRST Bank",
                "is_default": false,
                "acc_holder_name": "QA Test User",
                "effective_dt": "2026-06-23T11:17:05.000Z",
                "branch_name": "THANE BRANCH",
                "micr_code": "400751011",
                "name_match_score": "",
                "address": "GROUND FLOOR, SHOP NO 6  7, P.E.S.NEW ENGLISH BUILDING, DR.RAMESH PRADHAN ROAD, OFF. RAM MARUTI CROSS ROAD, THANE WEST, THANE 400602, TOLL FREE NUMBER 18004194332",
                "state": "MAHARASHTRA",
                "district": "THANE",
                "deleted_at": null
              },
              {
                "id": 70485,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:34a901981403cf613e08b3fcdb9abf00",
                "verfied": true,
                "ifsc": "HDFC0004888",
                "bank_name": "HDFC Bank",
                "is_default": true,
                "acc_holder_name": "John A Doe",
                "effective_dt": "2026-06-23T11:17:10.000Z",
                "branch_name": "DHYARI",
                "micr_code": "411240063",
                "name_match_score": "",
                "address": "HDFC BANK LTD GROUND AND MEZZANINE FLOOR SRNO60 7 1A 3 VADGAON TAL HAVELI PUNE MAHARASHTRA 411051",
                "state": "MAHARASHTRA",
                "district": "PUNE",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?page=0&limit=0' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_004_List_Success_NBFC_DecryptTrue_ReturnsDigits_3",
          "caseName": "[POSITIVE] `decrypt=true` decrypts account number in NBFC branch",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:11.942Z",
          "endedAt": "2026-06-23T11:17:11.975Z",
          "durationMs": 33,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "decrypt": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1462",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:11 GMT",
            "etag": "W/\"5b6-Em5TT8zLvK8h/yccNsP9q3LhdNo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "30",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 70484,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "501782213424604",
                "verfied": true,
                "ifsc": "IDFB0040112",
                "bank_name": "IDFC FIRST Bank",
                "is_default": false,
                "acc_holder_name": "QA Test User",
                "effective_dt": "2026-06-23T11:17:05.000Z",
                "branch_name": "THANE BRANCH",
                "micr_code": "400751011",
                "name_match_score": "",
                "address": "GROUND FLOOR, SHOP NO 6  7, P.E.S.NEW ENGLISH BUILDING, DR.RAMESH PRADHAN ROAD, OFF. RAM MARUTI CROSS ROAD, THANE WEST, THANE 400602, TOLL FREE NUMBER 18004194332",
                "state": "MAHARASHTRA",
                "district": "THANE",
                "deleted_at": null,
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/idfc-bank-apps-circle.svg",
                "bank_alias": "IDFC",
                "code": "IDFCNB"
              },
              {
                "id": 70485,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "50100816151727",
                "verfied": true,
                "ifsc": "HDFC0004888",
                "bank_name": "HDFC Bank",
                "is_default": true,
                "acc_holder_name": "John A Doe",
                "effective_dt": "2026-06-23T11:17:10.000Z",
                "branch_name": "DHYARI",
                "micr_code": "411240063",
                "name_match_score": "",
                "address": "HDFC BANK LTD GROUND AND MEZZANINE FLOOR SRNO60 7 1A 3 VADGAON TAL HAVELI PUNE MAHARASHTRA 411051",
                "state": "MAHARASHTRA",
                "district": "PUNE",
                "deleted_at": null,
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/hdfc-bank-apps-circle.svg",
                "bank_alias": "HDFC",
                "code": "HDFB"
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?decrypt=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_005_List_Security_DecryptFalse_NoPlainDigits_4",
          "caseName": "[POSITIVE] Security: default must not return plaintext digits",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:11.975Z",
          "endedAt": "2026-06-23T11:17:12.005Z",
          "durationMs": 30,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "decrypt": "false"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1462",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"5b6-Em5TT8zLvK8h/yccNsP9q3LhdNo\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "27",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 70484,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "501782213424604",
                "verfied": true,
                "ifsc": "IDFB0040112",
                "bank_name": "IDFC FIRST Bank",
                "is_default": false,
                "acc_holder_name": "QA Test User",
                "effective_dt": "2026-06-23T11:17:05.000Z",
                "branch_name": "THANE BRANCH",
                "micr_code": "400751011",
                "name_match_score": "",
                "address": "GROUND FLOOR, SHOP NO 6  7, P.E.S.NEW ENGLISH BUILDING, DR.RAMESH PRADHAN ROAD, OFF. RAM MARUTI CROSS ROAD, THANE WEST, THANE 400602, TOLL FREE NUMBER 18004194332",
                "state": "MAHARASHTRA",
                "district": "THANE",
                "deleted_at": null,
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/idfc-bank-apps-circle.svg",
                "bank_alias": "IDFC",
                "code": "IDFCNB"
              },
              {
                "id": 70485,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "50100816151727",
                "verfied": true,
                "ifsc": "HDFC0004888",
                "bank_name": "HDFC Bank",
                "is_default": true,
                "acc_holder_name": "John A Doe",
                "effective_dt": "2026-06-23T11:17:10.000Z",
                "branch_name": "DHYARI",
                "micr_code": "411240063",
                "name_match_score": "",
                "address": "HDFC BANK LTD GROUND AND MEZZANINE FLOOR SRNO60 7 1A 3 VADGAON TAL HAVELI PUNE MAHARASHTRA 411051",
                "state": "MAHARASHTRA",
                "district": "PUNE",
                "deleted_at": null,
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/hdfc-bank-apps-circle.svg",
                "bank_alias": "HDFC",
                "code": "HDFB"
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?decrypt=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_006_List_Success_USFB_Branch_5",
          "caseName": "[POSITIVE] `issuer_code=USFB` uses USFB branch",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.005Z",
          "endedAt": "2026-06-23T11:17:12.138Z",
          "durationMs": 133,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "486",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"1e6-4w9XrLG2Mix/lMbaYfU/Qlc+Ul8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "129",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "50100816151727",
                "bank_name": "HDFC Bank",
                "bank_code": "HDFB",
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/hdfc-bank-apps-circle.svg",
                "bank_alias": "HDFC",
                "ifsc": "HDFC0004888",
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "is_default": true,
                "verified": true,
                "acc_holder_name": "John A Doe",
                "is_pan_consent_checked": true,
                "unsupported": false
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?issuer_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_007_List_Success_IIB_Branch_6",
          "caseName": "[POSITIVE] `issuer_code=IIB` uses IIB branch",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.138Z",
          "endedAt": "2026-06-23T11:17:12.183Z",
          "durationMs": 45,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "IIB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "63",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"3f-oCPC8DEMdT63LEPOmlpkObbO8j8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "43",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": []
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?issuer_code=IIB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_008_List_Branch_USFB_DecryptIgnored_7",
          "caseName": "[POSITIVE] `decrypt=true` is ignored for USFB branch",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.184Z",
          "endedAt": "2026-06-23T11:17:12.288Z",
          "durationMs": 104,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "USFB",
            "decrypt": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "486",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"1e6-4w9XrLG2Mix/lMbaYfU/Qlc+Ul8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "102",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "50100816151727",
                "bank_name": "HDFC Bank",
                "bank_code": "HDFB",
                "bank_logo": "https://images.fixerra.in/bank_logos_payu/hdfc-bank-apps-circle.svg",
                "bank_alias": "HDFC",
                "ifsc": "HDFC0004888",
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "is_default": true,
                "verified": true,
                "acc_holder_name": "John A Doe",
                "is_pan_consent_checked": true,
                "unsupported": false
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?issuer_code=USFB&decrypt=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_009_List_Branch_IIB_DecryptIgnored_8",
          "caseName": "[POSITIVE] `decrypt=true` is ignored for IIB branch",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.288Z",
          "endedAt": "2026-06-23T11:17:12.361Z",
          "durationMs": 73,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "issuer_code": "IIB",
            "decrypt": "true"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "63",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"3f-oCPC8DEMdT63LEPOmlpkObbO8j8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "69",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": []
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?issuer_code=IIB&decrypt=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_010_List_Filter_PageName_Review_9",
          "caseName": "[POSITIVE] `page_name` passes through and may change projections",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.361Z",
          "endedAt": "2026-06-23T11:17:12.376Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "page_name": "review"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "1329",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"531-n/cNxemg9WDmFYDDRJCHCYij7Es\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 70484,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "5e4bc6c0-e016-4bfe-bb99-3527d314da5e",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:6a9c9fafc299d2642bf9ba868c19c934",
                "verfied": true,
                "ifsc": "IDFB0040112",
                "bank_name": "IDFC FIRST Bank",
                "is_default": false,
                "acc_holder_name": "QA Test User",
                "effective_dt": "2026-06-23T11:17:05.000Z",
                "branch_name": "THANE BRANCH",
                "micr_code": "400751011",
                "name_match_score": "",
                "address": "GROUND FLOOR, SHOP NO 6  7, P.E.S.NEW ENGLISH BUILDING, DR.RAMESH PRADHAN ROAD, OFF. RAM MARUTI CROSS ROAD, THANE WEST, THANE 400602, TOLL FREE NUMBER 18004194332",
                "state": "MAHARASHTRA",
                "district": "THANE",
                "deleted_at": null
              },
              {
                "id": 70485,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_bank_id": "8f6da0e3-c4cb-449c-88e2-cf18ce852bf7",
                "account_number": "249a22814bf213a7ff2e68cfa58da9d3:34a901981403cf613e08b3fcdb9abf00",
                "verfied": true,
                "ifsc": "HDFC0004888",
                "bank_name": "HDFC Bank",
                "is_default": true,
                "acc_holder_name": "John A Doe",
                "effective_dt": "2026-06-23T11:17:10.000Z",
                "branch_name": "DHYARI",
                "micr_code": "411240063",
                "name_match_score": "",
                "address": "HDFC BANK LTD GROUND AND MEZZANINE FLOOR SRNO60 7 1A 3 VADGAON TAL HAVELI PUNE MAHARASHTRA 411051",
                "state": "MAHARASHTRA",
                "district": "PUNE",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?page_name=review' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "HTTP status should be 200",
              "passed": true,
              "message": "Got 200"
            },
            {
              "description": "Response should indicate success (no error envelope)",
              "passed": true,
              "message": "No error envelope detected"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_011_Unauthorized_NoAuth_10",
          "caseName": "[POSITIVE] Missing auth rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:12.376Z",
          "endedAt": "2026-06-23T11:17:12.382Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_012_Unauthorized_MalformedJWT_11",
          "caseName": "[POSITIVE] Malformed token rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:12.383Z",
          "endedAt": "2026-06-23T11:17:12.388Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer bad.jwt"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "API_QA_REVIEW_GET_BANK_ACCOUNTS_TC_BANK_013_Unauthorized_ExpiredJWT_12",
          "caseName": "[POSITIVE] Expired token rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/bank-accounts",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:12.388Z",
          "endedAt": "2026-06-23T11:17:12.393Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
          "validations": [
            {
              "description": "Should indicate error (HTTP 401 or body statusCode=401)",
              "passed": true,
              "message": "Error confirmed (HTTP 401, body.statusCode=401)"
            }
          ],
          "docsFile": "user-services/API_QA_REVIEW_GET_BANK_ACCOUNTS.md",
          "apiMeta": {
            "endpoint": "/bank-accounts",
            "method": "GET",
            "guards": "Controller: `services/user-services/src/user-bank-accounts/user-bank-accounts.controller.ts` → `GET ",
            "authHint": "| Auth | `UserJwtGuard` (Bearer JWT **or** internal `apikey`) |",
            "summary": "| API Name | List User Bank Accounts |"
          },
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        }
      ],
      "summary": {
        "total": 277,
        "passed": 258,
        "failed": 19,
        "skipped": 0,
        "running": 0,
        "pending": 0,
        "durationMs": 19213
      }
    },
    {
      "stepId": "unity-step-06-nominee",
      "stepName": "Nominee",
      "cases": [
        {
          "caseId": "UNITY_NOMINEE_001",
          "caseName": "Get existing nominees (USFB)",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.393Z",
          "endedAt": "2026-06-23T11:17:12.403Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "63",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"3f-oCPC8DEMdT63LEPOmlpkObbO8j8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": []
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            }
          ],
          "docsFile": "user-services/API_QA_PI_GET_USER_NOMINEE.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_002",
          "caseName": "Create valid adult nominee (USFB)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:12.403Z",
          "endedAt": "2026-06-23T11:17:12.530Z",
          "durationMs": 127,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "518",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"206-MkQM4sInCM1GpPN2eYc2wEXr5MA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "123",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": true,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Ramesh",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10831,
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "created_at": "2026-06-23T11:17:12.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "docsFile": "user-services/API_QA_PI_POST_USER_NOMINEE.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_003",
          "caseName": "Get nominee by id returns the created nominee",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee/475d6625-84f4-4da7-9c03-6d0359f542fd",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.530Z",
          "endedAt": "2026-06-23T11:17:12.554Z",
          "durationMs": 24,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "636",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"27c-tDhuoqmjHxpYsHvg9GyKftHItKQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "20",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "User already exists.",
            "payload": {
              "is_default": true,
              "id": 10831,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "first_name": "Ramesh",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_phone": null,
              "nominee_email": null,
              "nominee_pan": "",
              "nominee_name_consent": null,
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "created_at": "2026-06-23T11:17:12.000Z",
              "guardian_dob": "",
              "guardian_relation": "",
              "guardian_salutation": "",
              "guardian_pan": "",
              "deleted_at": null
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee/475d6625-84f4-4da7-9c03-6d0359f542fd?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Returned nominee should match created first name",
              "passed": true,
              "message": "first_name=Ramesh"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_004",
          "caseName": "Update nominee relation by id",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/475d6625-84f4-4da7-9c03-6d0359f542fd",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.554Z",
          "endedAt": "2026-06-23T11:17:12.648Z",
          "durationMs": 94,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "nominee_relation": "Mother",
            "nominee_salutation": "MRS"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "624",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"270-+edI2zXvJntO+qdH41XPWMqSr9I\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "90",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "SUCCESS",
            "payload": {
              "is_default": true,
              "id": 10831,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "first_name": "Ramesh",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_phone": null,
              "nominee_email": null,
              "nominee_pan": "",
              "nominee_name_consent": null,
              "nominee_relation": "Mother",
              "nominee_salutation": "MRS",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "created_at": "2026-06-23T11:17:12.000Z",
              "guardian_dob": "",
              "guardian_relation": "",
              "guardian_salutation": "",
              "guardian_pan": "",
              "deleted_at": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/475d6625-84f4-4da7-9c03-6d0359f542fd?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"nominee_relation\":\"Mother\",\"nominee_salutation\":\"MRS\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_005",
          "caseName": "Create minor nominee with guardian details",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:12.649Z",
          "endedAt": "2026-06-23T11:17:12.744Z",
          "durationMs": 95,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Chintu",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "2015-06-10",
            "nominee_relation": "Son",
            "nominee_salutation": "MR",
            "is_default": false,
            "guardian_first_name": "Ramesh",
            "guardian_last_name": "Kumar",
            "guardian_dob": "1990-04-15",
            "guardian_salutation": "MR",
            "guardian_relation": "Father"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "611",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"263-0Ydu1a1zUm5JTkDZjC1D0qxbuxE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "92",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Chintu",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "2015-06-10",
              "nominee_pan": "",
              "nominee_relation": "Son",
              "nominee_salutation": "MR",
              "guardian_first_name": "Ramesh",
              "guardian_last_name": "Kumar",
              "guardian_dob": "1990-04-15",
              "guardian_relation": "Father",
              "guardian_salutation": "MR",
              "nominee_name_consent": null,
              "id": 10832,
              "f_user_nominee_id": "5c8fc158-9cc7-4a7b-b249-f768eaf1346a",
              "created_at": "2026-06-23T11:17:12.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Chintu\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"2015-06-10\",\"nominee_relation\":\"Son\",\"nominee_salutation\":\"MR\",\"is_default\":false,\"guardian_first_name\":\"Ramesh\",\"guardian_last_name\":\"Kumar\",\"guardian_dob\":\"1990-04-15\",\"guardian_salutation\":\"MR\",\"guardian_relation\":\"Father\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_006",
          "caseName": "Delete nominee by id (cleanup minor nominee)",
          "service": "user-services",
          "method": "DELETE",
          "url": "https://users-api.dev.fixerra.in/user-nominee/5c8fc158-9cc7-4a7b-b249-f768eaf1346a",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.744Z",
          "endedAt": "2026-06-23T11:17:12.860Z",
          "durationMs": 116,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "686",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"2ae-vra3zrK1Pbs3oFCFbrhocuHobK4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "113",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "is_default": false,
              "id": 10832,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_nominee_id": "5c8fc158-9cc7-4a7b-b249-f768eaf1346a",
              "first_name": "Chintu",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "2015-06-10",
              "nominee_phone": null,
              "nominee_email": null,
              "nominee_pan": "",
              "nominee_name_consent": null,
              "nominee_relation": "Son",
              "nominee_salutation": "MR",
              "guardian_first_name": "Ramesh",
              "guardian_last_name": "Kumar",
              "created_at": "2026-06-23T11:17:12.000Z",
              "guardian_dob": "1990-04-15T00:00:00.000Z",
              "guardian_relation": "Father",
              "guardian_salutation": "MR",
              "guardian_pan": "",
              "deleted_at": "2026-06-23T11:17:12.849Z"
            }
          },
          "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/5c8fc158-9cc7-4a7b-b249-f768eaf1346a?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_007",
          "caseName": "List nominees with explicit pagination",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.860Z",
          "endedAt": "2026-06-23T11:17:12.872Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "page": "1",
            "limit": "5",
            "f_code": "BAJ"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "626",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"272-94/7172oXc5il5FRzI4UE2ytm7g\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "is_default": true,
                "id": 10831,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
                "first_name": "Ramesh",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:12.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?page=1&limit=5&f_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_008",
          "caseName": "List nominees with invalid pagination is auto-corrected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:12.872Z",
          "endedAt": "2026-06-23T11:17:12.933Z",
          "durationMs": 61,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "page": "-1",
            "limit": "abc",
            "f_code": "BAJ"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "626",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:12 GMT",
            "etag": "W/\"272-94/7172oXc5il5FRzI4UE2ytm7g\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "58",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "is_default": true,
                "id": 10831,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
                "first_name": "Ramesh",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:12.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?page=-1&limit=abc&f_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_009",
          "caseName": "Create nominee via legacy POST /user-nominee route",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:12.933Z",
          "endedAt": "2026-06-23T11:17:13.036Z",
          "durationMs": 103,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Suresh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Brother",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "520",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"208-TTPNqPPcNxJuuHsQS06i0UgFArs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "100",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Suresh",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Brother",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10833,
              "f_user_nominee_id": "6472c4bc-3680-46b6-8428-42e932040b4a",
              "created_at": "2026-06-23T11:17:12.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Suresh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Brother\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_010",
          "caseName": "Delete legacy-route nominee (cleanup)",
          "service": "user-services",
          "method": "DELETE",
          "url": "https://users-api.dev.fixerra.in/user-nominee/6472c4bc-3680-46b6-8428-42e932040b4a",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:13.036Z",
          "endedAt": "2026-06-23T11:17:13.088Z",
          "durationMs": 52,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "647",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"287-Y+mIjB4BkPWhAEGtTFxJmRMiG6E\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "49",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": {
              "is_default": false,
              "id": 10833,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_nominee_id": "6472c4bc-3680-46b6-8428-42e932040b4a",
              "first_name": "Suresh",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_phone": null,
              "nominee_email": null,
              "nominee_pan": "",
              "nominee_name_consent": null,
              "nominee_relation": "Brother",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "created_at": "2026-06-23T11:17:12.000Z",
              "guardian_dob": "",
              "guardian_relation": "",
              "guardian_salutation": "",
              "guardian_pan": "",
              "deleted_at": "2026-06-23T11:17:13.076Z"
            }
          },
          "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/6472c4bc-3680-46b6-8428-42e932040b4a?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_011",
          "caseName": "Create nominee with relation Mother",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:13.088Z",
          "endedAt": "2026-06-23T11:17:13.154Z",
          "durationMs": 66,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Sunita",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Mother",
            "nominee_salutation": "MRS",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "520",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"208-KS062vsYYM2pgobvzQFr42SuwkE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "63",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Sunita",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Mother",
              "nominee_salutation": "MRS",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10834,
              "f_user_nominee_id": "6ae8403c-180c-42f6-9653-08517e4c94c4",
              "created_at": "2026-06-23T11:17:13.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Sunita\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Mother\",\"nominee_salutation\":\"MRS\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_012",
          "caseName": "Create nominee with relation Husband",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:13.154Z",
          "endedAt": "2026-06-23T11:17:13.330Z",
          "durationMs": 176,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Rohan",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Husband",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "519",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"207-cqbd6cj7IjyIw0dhSFvFuTk8HB4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "173",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Rohan",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Husband",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10835,
              "f_user_nominee_id": "18e9e476-4f7a-4e60-abb0-473665e75607",
              "created_at": "2026-06-23T11:17:13.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Rohan\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Husband\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_013",
          "caseName": "Create nominee with relation Daughter",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:13.330Z",
          "endedAt": "2026-06-23T11:17:13.449Z",
          "durationMs": 119,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Priya",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1996-02-20",
            "nominee_relation": "Daughter",
            "nominee_salutation": "MS",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "520",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"208-EAZFcrhyGaibqO5gDLkVg7L6vZE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "116",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Priya",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1996-02-20",
              "nominee_pan": "",
              "nominee_relation": "Daughter",
              "nominee_salutation": "MS",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10836,
              "f_user_nominee_id": "02748c92-0d45-4fdd-bff8-bcf591c892eb",
              "created_at": "2026-06-23T11:17:13.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Priya\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1996-02-20\",\"nominee_relation\":\"Daughter\",\"nominee_salutation\":\"MS\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_014",
          "caseName": "Create nominee with a valid nominee PAN",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:13.449Z",
          "endedAt": "2026-06-23T11:17:13.534Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Vikram",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "ABCPE1234F",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "584",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"248-itey23lRFjG8LoTQAnffHYSx9Dg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "82",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Vikram",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "249a22814bf213a7ff2e68cfa58da9d3:590165e106e1a2c8480111854268324f",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10837,
              "f_user_nominee_id": "c546bef8-d285-4344-85bb-d6e732fb9a5b",
              "created_at": "2026-06-23T11:17:13.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Vikram\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"ABCPE1234F\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            },
            {
              "description": "Stored nominee_pan should not be returned in plaintext",
              "passed": true,
              "message": "nominee_pan not echoed in plaintext"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_015",
          "caseName": "Reject relation \"Self\" (not in allowed relation list)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.535Z",
          "endedAt": "2026-06-23T11:17:13.550Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Self",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "190",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"be-OjnPZp7BitXUvDxYGkRz6nke5Tw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1071",
                "error": "Nominee relation should be string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Self\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1071",
              "passed": true,
              "message": "FIXUSER1071 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1071"
          ],
          "actualErrorCodes": [
            "FIXUSER1071"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_016",
          "caseName": "Reject nominee first name containing a SQL-injection payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.550Z",
          "endedAt": "2026-06-23T11:17:13.561Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh' OR 1=1 --",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"c4-X6XMD/1SiqZk3SZQkx9MAL+TIlU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1069",
                "error": "Please enter a valid nominee first name"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh'\\'' OR 1=1 --\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1069",
              "passed": true,
              "message": "FIXUSER1069 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1069"
          ],
          "actualErrorCodes": [
            "FIXUSER1069"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_017",
          "caseName": "Reject nominee first name containing an XSS payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.561Z",
          "endedAt": "2026-06-23T11:17:13.628Z",
          "durationMs": 67,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "<script>alert(1)</script>",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"c4-X6XMD/1SiqZk3SZQkx9MAL+TIlU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "64",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1069",
                "error": "Please enter a valid nominee first name"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"<script>alert(1)</script>\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1069",
              "passed": true,
              "message": "FIXUSER1069 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1069"
          ],
          "actualErrorCodes": [
            "FIXUSER1069"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_018",
          "caseName": "Create nominee whose name matches the applicant's own PAN name",
          "service": "user-services",
          "method": "POST",
          "url": "/api/v1/user-nominee",
          "status": "skipped",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "expectedErrorCodes": [],
          "actualErrorCodes": [],
          "validations": [],
          "skippedReason": "panFirstName not available from PAN verification step"
        },
        {
          "caseId": "UNITY_NOMINEE_019",
          "caseName": "Reject guardian DOB indicating a minor guardian",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.628Z",
          "endedAt": "2026-06-23T11:17:13.643Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Chintu",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "2015-06-10",
            "nominee_relation": "Son",
            "nominee_salutation": "MR",
            "is_default": true,
            "guardian_first_name": "Ramesh",
            "guardian_last_name": "Kumar",
            "guardian_salutation": "MR",
            "guardian_relation": "Father",
            "guardian_dob": "2015-01-01"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "227",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"e3-zPo/YiHUA2RV3ID0wBVdHjHoi04\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "Nominee Guardian should be an adult",
                "f_error_message": "",
                "errorCode": "FIXUSER1080",
                "error": "Nominee Guardian should be an adult"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Chintu\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"2015-06-10\",\"nominee_relation\":\"Son\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"guardian_first_name\":\"Ramesh\",\"guardian_last_name\":\"Kumar\",\"guardian_salutation\":\"MR\",\"guardian_relation\":\"Father\",\"guardian_dob\":\"2015-01-01\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1080",
              "passed": true,
              "message": "FIXUSER1080 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1080"
          ],
          "actualErrorCodes": [
            "FIXUSER1080"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_020",
          "caseName": "Reject invalid nominee relation",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.643Z",
          "endedAt": "2026-06-23T11:17:13.654Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Uncle",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "190",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"be-OjnPZp7BitXUvDxYGkRz6nke5Tw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1071",
                "error": "Nominee relation should be string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Uncle\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1071",
              "passed": true,
              "message": "FIXUSER1071 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1071"
          ],
          "actualErrorCodes": [
            "FIXUSER1071"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_021",
          "caseName": "Reject invalid nominee salutation",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.655Z",
          "endedAt": "2026-06-23T11:17:13.741Z",
          "durationMs": 86,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "DR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "192",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"c0-4Kbf/SiUHV6/UZ/WEtYqXa6sxh4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "83",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1077",
                "error": "Nominee salutation should be string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"DR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1077",
              "passed": true,
              "message": "FIXUSER1077 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1077"
          ],
          "actualErrorCodes": [
            "FIXUSER1077"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_022",
          "caseName": "Reject invalid nominee PAN format",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.741Z",
          "endedAt": "2026-06-23T11:17:13.760Z",
          "durationMs": 19,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "INVALID123",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "205",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"cd-OjxyzMqS9QwMcdco9amWUl3CdMw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "16",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1001",
                "error": "Please enter a valid PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"INVALID123\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1001",
              "passed": true,
              "message": "FIXUSER1001 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1001"
          ],
          "actualErrorCodes": [
            "FIXUSER1001"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_023",
          "caseName": "Reject invalid nominee DOB format",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.760Z",
          "endedAt": "2026-06-23T11:17:13.772Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "not-a-date",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "202",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"ca-eiW3jCKud9aQN9u5BBubRqxLIjc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1072",
                "error": "Please enter a valid nominee DOB (YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"not-a-date\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1072",
              "passed": true,
              "message": "FIXUSER1072 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1072"
          ],
          "actualErrorCodes": [
            "FIXUSER1072"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_024",
          "caseName": "Reject future nominee DOB",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.772Z",
          "endedAt": "2026-06-23T11:17:13.835Z",
          "durationMs": 63,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "2099-01-01",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "194",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"c2-ue3VX43dASmbpm+YepGpr2KuIH4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "60",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1094",
                "error": "Date of birth cannot be in the future"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"2099-01-01\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1094",
              "passed": true,
              "message": "FIXUSER1094 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1094"
          ],
          "actualErrorCodes": [
            "FIXUSER1094"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_025",
          "caseName": "Reject numeric nominee first name",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.835Z",
          "endedAt": "2026-06-23T11:17:13.847Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "12345",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"c4-X6XMD/1SiqZk3SZQkx9MAL+TIlU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1069",
                "error": "Please enter a valid nominee first name"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"12345\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1069",
              "passed": true,
              "message": "FIXUSER1069 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1069"
          ],
          "actualErrorCodes": [
            "FIXUSER1069"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_026",
          "caseName": "Reject invalid guardian salutation",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.847Z",
          "endedAt": "2026-06-23T11:17:13.862Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "2015-06-10",
            "nominee_relation": "Son",
            "nominee_salutation": "MR",
            "is_default": true,
            "guardian_first_name": "Ramesh",
            "guardian_salutation": "DOCTOR"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "218",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"da-pjBkSM33AvMqT+P5XWNXLQWArJQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1034",
                "error": "Invalid value for nominee salutation. Valid values: MR,MRS,MS"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"2015-06-10\",\"nominee_relation\":\"Son\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"guardian_first_name\":\"Ramesh\",\"guardian_salutation\":\"DOCTOR\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1034",
              "passed": true,
              "message": "FIXUSER1034 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1034"
          ],
          "actualErrorCodes": [
            "FIXUSER1034"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_027",
          "caseName": "Reject empty nominee payload",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:13.863Z",
          "endedAt": "2026-06-23T11:17:13.927Z",
          "durationMs": 64,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {},
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "430",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:13 GMT",
            "etag": "W/\"1ae-nw3d+67Qw90qUsEGlMMJ2T+FuiI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "61",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1072",
                "error": "Please enter a valid nominee DOB (YYYY-MM-DD)"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1071",
                "error": "Nominee relation should be string"
              },
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1077",
                "error": "Nominee salutation should be string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": [
            "FIXUSER1072",
            "FIXUSER1071",
            "FIXUSER1077"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_030",
          "caseName": "Get nominee by unknown id does not crash",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:13.927Z",
          "endedAt": "2026-06-23T11:17:14.039Z",
          "durationMs": 112,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "76",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"4c-Npwn0S/XgUnPsRtSFGf2+NXMhnQ\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "109",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 404,
            "message": "No such user exists!",
            "payload": {}
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_031",
          "caseName": "Update nominee with unknown id does not crash",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.039Z",
          "endedAt": "2026-06-23T11:17:14.142Z",
          "durationMs": 103,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "nominee_relation": "Mother"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "101",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"nominee_relation\":\"Mother\"}'",
          "validations": [
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 400 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_032",
          "caseName": "Delete nominee with unknown id does not crash",
          "service": "user-services",
          "method": "DELETE",
          "url": "https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.142Z",
          "endedAt": "2026-06-23T11:17:14.265Z",
          "durationMs": 123,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"4e-jJoCB7/P3I7O4rrtna0ZK3HRrrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "119",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 400 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_040",
          "caseName": "List nominees without auth is rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:14.265Z",
          "endedAt": "2026-06-23T11:17:14.271Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "4",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"x-partner-key is required\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_041",
          "caseName": "Create nominee without auth is rejected",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:14.271Z",
          "endedAt": "2026-06-23T11:17:14.277Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"x-partner-key is required\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_042",
          "caseName": "List nominees with invalid JWT is rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:14.277Z",
          "endedAt": "2026-06-23T11:17:14.282Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer invalid.jwt.token"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"Access Denied.\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_043",
          "caseName": "Delete nominee without auth is rejected",
          "service": "user-services",
          "method": "DELETE",
          "url": "https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:14.282Z",
          "endedAt": "2026-06-23T11:17:14.327Z",
          "durationMs": 45,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "42",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/11111111-2222-4333-8444-555555555555' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"Access Denied.\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_044",
          "caseName": "Create nominee via three-part full_name is parsed into first/middle/last",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:14.327Z",
          "endedAt": "2026-06-23T11:17:14.431Z",
          "durationMs": 104,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "full_name": "John A Doe",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "518",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"206-/K2Dti4fiDmMGEVcMXOIW5KP9mE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "21",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "John",
              "middle_name": "A",
              "last_name": "Doe",
              "nominee_dob": "1990-04-15",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_pan": null,
              "nominee_name_consent": null,
              "id": 10838,
              "f_user_nominee_id": "228e0b08-a8fb-4fbb-8735-1507f2835a71",
              "created_at": "2026-06-23T11:17:14.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"full_name\":\"John A Doe\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "full_name should be parsed into first/middle/last",
              "passed": true,
              "message": "full_name parsed correctly"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_045",
          "caseName": "Create nominee via single-word full_name auto-sets last_name to \".\"",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:14.431Z",
          "endedAt": "2026-06-23T11:17:14.462Z",
          "durationMs": 31,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "full_name": "Madonna",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "518",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"206-9NLcPXRcd6I94OFNtpUXo7Tw6AE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "28",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Madonna",
              "middle_name": "",
              "last_name": ".",
              "nominee_dob": "1990-04-15",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_pan": null,
              "nominee_name_consent": null,
              "id": 10839,
              "f_user_nominee_id": "67e8f67d-e1f2-4712-9816-1bec3677c6b1",
              "created_at": "2026-06-23T11:17:14.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"full_name\":\"Madonna\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "last_name should auto-default to \".\"",
              "passed": true,
              "message": "last_name=\".\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_046",
          "caseName": "Reject full_name containing digits",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.462Z",
          "endedAt": "2026-06-23T11:17:14.473Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "full_name": "John2 Doe",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "412",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"19c-02mEMyJzCgwNYhtIHj41VHZ/VZs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1234",
                "error": "Full name must meet the following criteria: Must start with a letter and can only include letters and optional spaces between words. Can end with a dot (.) only if there is at least one space-separated word before the dot. Must not start or end with space"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"full_name\":\"John2 Doe\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1234",
              "passed": true,
              "message": "FIXUSER1234 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1234"
          ],
          "actualErrorCodes": [
            "FIXUSER1234"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_047",
          "caseName": "Reject full_name equal to \".\"",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.473Z",
          "endedAt": "2026-06-23T11:17:14.527Z",
          "durationMs": 54,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "full_name": ".",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "412",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"19c-02mEMyJzCgwNYhtIHj41VHZ/VZs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "50",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1234",
                "error": "Full name must meet the following criteria: Must start with a letter and can only include letters and optional spaces between words. Can end with a dot (.) only if there is at least one space-separated word before the dot. Must not start or end with space"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"full_name\":\".\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1234",
              "passed": true,
              "message": "FIXUSER1234 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1234"
          ],
          "actualErrorCodes": [
            "FIXUSER1234"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_049",
          "caseName": "Reject payload missing both full_name and first_name",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.527Z",
          "endedAt": "2026-06-23T11:17:14.541Z",
          "durationMs": 14,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "214",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"d6-xip02d/MMytI/+Z0vUw/ObZVaS8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1227",
                "error": "Either full_name or first_name and last_name are required"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1227",
              "passed": true,
              "message": "FIXUSER1227 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1227"
          ],
          "actualErrorCodes": [
            "FIXUSER1227"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_060",
          "caseName": "Reject middle_name with invalid characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.541Z",
          "endedAt": "2026-06-23T11:17:14.552Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "A1",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "197",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"c5-nkE2baDfMZRG8VK0+mhypSY/cP8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1205",
                "error": "Please enter a valid nominee middle name"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"A1\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1205",
              "passed": true,
              "message": "FIXUSER1205 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1205"
          ],
          "actualErrorCodes": [
            "FIXUSER1205"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_061",
          "caseName": "Reject last_name with invalid characters",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.552Z",
          "endedAt": "2026-06-23T11:17:14.563Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "D0e",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "195",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"c3-X/VCKSzEyRS2kQq2r3JvtQMi7nA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1356",
                "error": "Please enter a valid nominee last name"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"D0e\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1356",
              "passed": true,
              "message": "FIXUSER1356 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1356"
          ],
          "actualErrorCodes": [
            "FIXUSER1356"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_062",
          "caseName": "Reject nominee_phone that is not a 10-digit number",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.563Z",
          "endedAt": "2026-06-23T11:17:14.574Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "nominee_phone": "123"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "249",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"f9-Myqeg6Qa6NPvZ5ntMiEabpakw8Q\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "Nominee phone number must be exactly 10 digits",
                "errorCode": "FIXUSER1501",
                "error": "Nominee phone number must be exactly 10 digits"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"nominee_phone\":\"123\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1501",
              "passed": true,
              "message": "FIXUSER1501 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1501"
          ],
          "actualErrorCodes": [
            "FIXUSER1501"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_063",
          "caseName": "Create nominee with a valid nominee_phone",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:14.574Z",
          "endedAt": "2026-06-23T11:17:14.727Z",
          "durationMs": 153,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Phoneuser",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false,
            "nominee_phone": "9999999998"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "551",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"227-BfoY8a5NZBL1vHBrbjUhiMgl3sc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "144",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Phoneuser",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_phone": "9999999998",
              "nominee_pan": "",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10840,
              "f_user_nominee_id": "4604571d-a975-4ce2-ba6b-b6c5f85c7191",
              "created_at": "2026-06-23T11:17:14.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Phoneuser\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false,\"nominee_phone\":\"9999999998\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_065",
          "caseName": "Reject invalid nominee_email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.727Z",
          "endedAt": "2026-06-23T11:17:14.744Z",
          "durationMs": 17,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "nominee_email": "a@b"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "249",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"f9-ZYyygy5kOMkTird/iKDJ4jZYqI0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "12",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "Nominee email address is not in a valid format",
                "errorCode": "FIXUSER1502",
                "error": "Nominee email address is not in a valid format"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"nominee_email\":\"a@b\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1502",
              "passed": true,
              "message": "FIXUSER1502 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1502"
          ],
          "actualErrorCodes": [
            "FIXUSER1502"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_066",
          "caseName": "Create nominee with a valid nominee_email",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:14.744Z",
          "endedAt": "2026-06-23T11:17:14.943Z",
          "durationMs": 199,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Emailuser",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false,
            "nominee_email": "qa.nominee@example.com"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "563",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:14 GMT",
            "etag": "W/\"233-RQiy1nsKVMDiCZl8QbAHPDAKXrc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "197",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "Emailuser",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_email": "qa.nominee@example.com",
              "nominee_pan": "",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10841,
              "f_user_nominee_id": "44f2c0b9-0630-43f7-8364-8308e9207381",
              "created_at": "2026-06-23T11:17:14.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Emailuser\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false,\"nominee_email\":\"qa.nominee@example.com\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_067",
          "caseName": "Reject lowercase nominee_relation (case-sensitive enum)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:14.943Z",
          "endedAt": "2026-06-23T11:17:15.037Z",
          "durationMs": 94,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "190",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"be-OjnPZp7BitXUvDxYGkRz6nke5Tw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "89",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1071",
                "error": "Nominee relation should be string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1071",
              "passed": true,
              "message": "FIXUSER1071 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1071"
          ],
          "actualErrorCodes": [
            "FIXUSER1071"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_068",
          "caseName": "Reject lowercase nominee_salutation (case-sensitive enum)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:15.037Z",
          "endedAt": "2026-06-23T11:17:15.052Z",
          "durationMs": 15,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Ramesh",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "mr",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "192",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"c0-4Kbf/SiUHV6/UZ/WEtYqXa6sxh4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "11",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1077",
                "error": "Nominee salutation should be string"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Ramesh\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"mr\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1077",
              "passed": true,
              "message": "FIXUSER1077 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1077"
          ],
          "actualErrorCodes": [
            "FIXUSER1077"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_069",
          "caseName": "Reject minor nominee with no guardian_first_name at all",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:15.052Z",
          "endedAt": "2026-06-23T11:17:15.133Z",
          "durationMs": 81,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Minor",
            "last_name": "Kumar",
            "nominee_dob": "2015-01-01",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "270",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"10e-X6mu6j9j7+8xsjVjZ7B6kN+acwI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "77",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1039",
                "error": "All fields of the guardian are required for minor nominees, guardian_first_name, guardian_last_name, guardian_dob"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Minor\",\"last_name\":\"Kumar\",\"nominee_dob\":\"2015-01-01\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1039",
              "passed": true,
              "message": "FIXUSER1039 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1039"
          ],
          "actualErrorCodes": [
            "FIXUSER1039"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_070",
          "caseName": "Reject invalid guardian_pan format",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:15.133Z",
          "endedAt": "2026-06-23T11:17:15.227Z",
          "durationMs": 94,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Minor",
            "last_name": "Kumar",
            "nominee_dob": "2015-06-10",
            "nominee_relation": "Son",
            "nominee_salutation": "MR",
            "is_default": false,
            "guardian_first_name": "Ramesh",
            "guardian_last_name": "Kumar",
            "guardian_dob": "1990-04-15",
            "guardian_salutation": "MR",
            "guardian_pan": "123"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "214",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"d6-HeS8KVo5L+C0zN6UPq28ts/WRWI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "90",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1204",
                "error": "Please enter a valid guardian PAN number (Ex. AAAPZ1234L)"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Minor\",\"last_name\":\"Kumar\",\"nominee_dob\":\"2015-06-10\",\"nominee_relation\":\"Son\",\"nominee_salutation\":\"MR\",\"is_default\":false,\"guardian_first_name\":\"Ramesh\",\"guardian_last_name\":\"Kumar\",\"guardian_dob\":\"1990-04-15\",\"guardian_salutation\":\"MR\",\"guardian_pan\":\"123\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1204",
              "passed": true,
              "message": "FIXUSER1204 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1204"
          ],
          "actualErrorCodes": [
            "FIXUSER1204"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_071",
          "caseName": "is_default=true unsets the previously default nominee",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.227Z",
          "endedAt": "2026-06-23T11:17:15.260Z",
          "durationMs": 33,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "NewDefault",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "522",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"20a-tXKO8oSoGjSUwFTcjPLcggjLdck\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "30",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": true,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "NewDefault",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10842,
              "f_user_nominee_id": "af2c9fdb-8796-4652-85bc-89c21c6a1f56",
              "created_at": "2026-06-23T11:17:15.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"NewDefault\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_072",
          "caseName": "Follow-up list shows only one nominee with is_default=true",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:15.260Z",
          "endedAt": "2026-06-23T11:17:15.272Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "5805",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"16ad-F/Jk1kHoodMX4Q+YyxsNjh1x7tI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "is_default": true,
                "id": 10842,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "af2c9fdb-8796-4652-85bc-89c21c6a1f56",
                "first_name": "NewDefault",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:15.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10838,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "228e0b08-a8fb-4fbb-8735-1507f2835a71",
                "first_name": "John",
                "middle_name": "A",
                "last_name": "Doe",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": null,
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10839,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "67e8f67d-e1f2-4712-9816-1bec3677c6b1",
                "first_name": "Madonna",
                "middle_name": "",
                "last_name": ".",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": null,
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10840,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "4604571d-a975-4ce2-ba6b-b6c5f85c7191",
                "first_name": "Phoneuser",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": "9999999998",
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10841,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "44f2c0b9-0630-43f7-8364-8308e9207381",
                "first_name": "Emailuser",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": "qa.nominee@example.com",
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10834,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "6ae8403c-180c-42f6-9653-08517e4c94c4",
                "first_name": "Sunita",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:13.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10835,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "18e9e476-4f7a-4e60-abb0-473665e75607",
                "first_name": "Rohan",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Husband",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:13.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10836,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "02748c92-0d45-4fdd-bff8-bcf591c892eb",
                "first_name": "Priya",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1996-02-20",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Daughter",
                "nominee_salutation": "MS",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:13.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10837,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "c546bef8-d285-4344-85bb-d6e732fb9a5b",
                "first_name": "Vikram",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "249a22814bf213a7ff2e68cfa58da9d3:590165e106e1a2c8480111854268324f",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:13.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10831,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
                "first_name": "Ramesh",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:12.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Exactly one nominee should be marked is_default=true",
              "passed": true,
              "message": "1 default nominee(s) found"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_073",
          "caseName": "Empty nominee_pan is treated as absent (not encrypted)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.272Z",
          "endedAt": "2026-06-23T11:17:15.337Z",
          "durationMs": 65,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "EmptyPan",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "521",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"209-qjRpslsvj0WgFzwnjKkgJmNihl4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "62",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "EmptyPan",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10843,
              "f_user_nominee_id": "dd462b51-3647-4b4a-811f-08bde2a16044",
              "created_at": "2026-06-23T11:17:15.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"EmptyPan\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "nominee_pan should be null/falsy when sent as an empty string",
              "passed": true,
              "message": "nominee_pan is empty/null"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_074",
          "caseName": "Lowercase nominee_pan is accepted and stored encrypted",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.337Z",
          "endedAt": "2026-06-23T11:17:15.367Z",
          "durationMs": 30,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "LowerPan",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "abcpe1234f",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "586",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"24a-XLmNNGuucgDgLZS7ajPeHQVcCYw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "28",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "LowerPan",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "249a22814bf213a7ff2e68cfa58da9d3:590165e106e1a2c8480111854268324f",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10844,
              "f_user_nominee_id": "24d9cf9b-851d-4c45-9116-1a772bdaca51",
              "created_at": "2026-06-23T11:17:15.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"LowerPan\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"abcpe1234f\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Stored nominee_pan should not be returned in plaintext",
              "passed": true,
              "message": "nominee_pan not echoed in plaintext"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_075",
          "caseName": "Extra unknown field in payload is silently ignored",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/api/v1/user-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.367Z",
          "endedAt": "2026-06-23T11:17:15.435Z",
          "durationMs": 68,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "ExtraField",
            "middle_name": "",
            "last_name": "Kumar",
            "nominee_pan": "",
            "nominee_dob": "1990-04-15",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": false,
            "unknown_field": "x"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "523",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"20b-YjUd0a0gRq4SFmYe/XO9dDzwBJE\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "62",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "Nominee created successfully",
            "payload": {
              "is_default": false,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "first_name": "ExtraField",
              "middle_name": "",
              "last_name": "Kumar",
              "nominee_dob": "1990-04-15",
              "nominee_pan": "",
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "nominee_name_consent": null,
              "id": 10845,
              "f_user_nominee_id": "5729bc94-92d6-4828-b656-db7a5814acac",
              "created_at": "2026-06-23T11:17:15.000Z",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"ExtraField\",\"middle_name\":\"\",\"last_name\":\"Kumar\",\"nominee_pan\":\"\",\"nominee_dob\":\"1990-04-15\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":false,\"unknown_field\":\"x\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Response should contain nominee ID",
              "passed": true,
              "message": "Nominee ID present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_080",
          "caseName": "List nominees decrypts nominee_phone when present",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:15.435Z",
          "endedAt": "2026-06-23T11:17:15.446Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "5811",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"16b3-/E4DlO0M5wv+aGU6jQegOQkFzfA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "is_default": false,
                "id": 10844,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "24d9cf9b-851d-4c45-9116-1a772bdaca51",
                "first_name": "LowerPan",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "249a22814bf213a7ff2e68cfa58da9d3:590165e106e1a2c8480111854268324f",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:15.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10845,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "5729bc94-92d6-4828-b656-db7a5814acac",
                "first_name": "ExtraField",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:15.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": true,
                "id": 10842,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "af2c9fdb-8796-4652-85bc-89c21c6a1f56",
                "first_name": "NewDefault",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:15.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10843,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "dd462b51-3647-4b4a-811f-08bde2a16044",
                "first_name": "EmptyPan",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:15.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10838,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "228e0b08-a8fb-4fbb-8735-1507f2835a71",
                "first_name": "John",
                "middle_name": "A",
                "last_name": "Doe",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": null,
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10839,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "67e8f67d-e1f2-4712-9816-1bec3677c6b1",
                "first_name": "Madonna",
                "middle_name": "",
                "last_name": ".",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": null,
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10840,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "4604571d-a975-4ce2-ba6b-b6c5f85c7191",
                "first_name": "Phoneuser",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": "9999999998",
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10841,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "44f2c0b9-0630-43f7-8364-8308e9207381",
                "first_name": "Emailuser",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": "qa.nominee@example.com",
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:14.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10834,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "6ae8403c-180c-42f6-9653-08517e4c94c4",
                "first_name": "Sunita",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:13.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              },
              {
                "is_default": false,
                "id": 10835,
                "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_nominee_id": "18e9e476-4f7a-4e60-abb0-473665e75607",
                "first_name": "Rohan",
                "middle_name": "",
                "last_name": "Kumar",
                "nominee_dob": "1990-04-15",
                "nominee_phone": null,
                "nominee_email": null,
                "nominee_pan": "",
                "nominee_name_consent": null,
                "nominee_relation": "Husband",
                "nominee_salutation": "MR",
                "guardian_first_name": "",
                "guardian_last_name": "",
                "created_at": "2026-06-23T11:17:13.000Z",
                "guardian_dob": "",
                "guardian_relation": "",
                "guardian_salutation": "",
                "guardian_pan": "",
                "deleted_at": null
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Any nominee_phone present in the list should be a non-empty decrypted string",
              "passed": true,
              "message": "1 nominee(s) with decrypted phone"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_081",
          "caseName": "List nominees with expired JWT is rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:15.446Z",
          "endedAt": "2026-06-23T11:17:15.531Z",
          "durationMs": 85,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"Access Denied.\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_082",
          "caseName": "Create default nominee matching applicant PAN name (for FIXINV165 booking check)",
          "service": "user-services",
          "method": "POST",
          "url": "/api/v1/user-nominee",
          "status": "skipped",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "expectedErrorCodes": [],
          "actualErrorCodes": [],
          "validations": [],
          "skippedReason": "panFirstName not available from PAN verification step"
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_001",
          "caseName": "Create address for nominee (USFB)",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.531Z",
          "endedAt": "2026-06-23T11:17:15.553Z",
          "durationMs": 22,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "same_as_user": false,
            "line1": "221B Baker Street",
            "line2": "Near Test Lane",
            "area": "Test Area",
            "city": "Mumbai",
            "state": "Maharashtra",
            "country": "INDIA",
            "pincode": "400001",
            "address_type": "PERMANENT"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "636",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"27c-KA7GCm//NLgk771Ha8xTvd1kyug\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "19",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "CREATED",
            "payload": {
              "is_default": false,
              "same_as_user": false,
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "line2": "Near Test Lane",
              "state": "MAHARASHTRA",
              "country": "INDIA",
              "address_type": "PERMANENT",
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
              "id": 5137,
              "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "deleted_at": null
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"same_as_user\":false,\"line1\":\"221B Baker Street\",\"line2\":\"Near Test Lane\",\"area\":\"Test Area\",\"city\":\"Mumbai\",\"state\":\"Maharashtra\",\"country\":\"INDIA\",\"pincode\":\"400001\",\"address_type\":\"PERMANENT\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Saved address should be linked to the nominee",
              "passed": true,
              "message": "f_user_nominee_id matches nominee"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_002",
          "caseName": "Get nominee address — newly added address is returned",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:15.553Z",
          "endedAt": "2026-06-23T11:17:15.564Z",
          "durationMs": 11,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "783",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"30f-8mjj9kv47FJEGXewSkyM3x9+RsI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 5137,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
                "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
                "f_base_user_address_id": null,
                "state": "MAHARASHTRA",
                "country": "INDIA",
                "address_type": "PERMANENT",
                "deleted_at": null,
                "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
                "is_default": false,
                "line1": "221B Baker Street",
                "line2": null,
                "line3": null,
                "sub_district": null,
                "street": null,
                "post_office": null,
                "pincode": "400001",
                "area": "Test Area",
                "city": "Mumbai"
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_user_nominee_id=475d6625-84f4-4da7-9c03-6d0359f542fd' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Returned list contains an address for this nominee",
              "passed": true,
              "message": "Nominee address present"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_003",
          "caseName": "Create nominee address with same_as_user copies applicant address",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.564Z",
          "endedAt": "2026-06-23T11:17:15.591Z",
          "durationMs": 27,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "same_as_user": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "654",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"28e-6YFxbRguMZEpM5A7g8D6o5pJGz0\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "24",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "CREATED",
            "payload": {
              "id": 5137,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "f_base_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "state": "MAHARASHTRA",
              "country": "INDIA",
              "address_type": "PERMANENT",
              "deleted_at": null,
              "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
              "is_default": false
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"same_as_user\":true}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 201 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_004",
          "caseName": "Get nominee addresses without a nominee filter returns the full address list",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:15.591Z",
          "endedAt": "2026-06-23T11:17:15.638Z",
          "durationMs": 47,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "817",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"331-X/SDAIT/fsZBztksNs9DVkHaXWU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "44",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 5137,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
                "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
                "f_base_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
                "state": "MAHARASHTRA",
                "country": "INDIA",
                "address_type": "PERMANENT",
                "deleted_at": null,
                "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
                "is_default": false,
                "line1": "221B Baker Street",
                "line2": null,
                "line3": null,
                "sub_district": null,
                "street": null,
                "post_office": null,
                "pincode": "400001",
                "area": "Test Area",
                "city": "Mumbai"
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-address/for-nominee' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Response payload is an array",
              "passed": true,
              "message": "Address list is array"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_005",
          "caseName": "Get nominee address for an unknown nominee id returns an empty list",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "edge",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:15.638Z",
          "endedAt": "2026-06-23T11:17:15.651Z",
          "durationMs": 13,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_user_nominee_id": "11111111-2222-4333-8444-555555555555"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "63",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"3f-oCPC8DEMdT63LEPOmlpkObbO8j8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "10",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": []
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_user_nominee_id=11111111-2222-4333-8444-555555555555' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Returned list contains no address for an unknown nominee id",
              "passed": true,
              "message": "No address for unknown nominee id"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_006",
          "caseName": "Create nominee address without auth is rejected",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:15.651Z",
          "endedAt": "2026-06-23T11:17:15.657Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "same_as_user": false,
            "line1": "Test",
            "city": "Mumbai",
            "state": "MH",
            "pincode": "400001"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"same_as_user\":false,\"line1\":\"Test\",\"city\":\"Mumbai\",\"state\":\"MH\",\"pincode\":\"400001\"}'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"Access Denied.\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_007",
          "caseName": "Get nominee address without auth is rejected",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:15.657Z",
          "endedAt": "2026-06-23T11:17:15.663Z",
          "durationMs": 6,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "169",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"a9-ra1+G8sgf4WPH3Nd3PzEHUQT2fc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "3",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "x-partner-key is required",
            "payload": {},
            "error": {
              "statusCode": 401,
              "message": "x-partner-key is required",
              "error": "Unauthorized"
            }
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-address/for-nominee' \\\n  -H 'Content-Type: application/json'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"x-partner-key is required\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_008",
          "caseName": "Create nominee address missing f_user_nominee_id is rejected",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:15.663Z",
          "endedAt": "2026-06-23T11:17:15.798Z",
          "durationMs": 135,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "same_as_user": true
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"c4-jXRSsJpXnefE69VSOX4YYjFj9Hs\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "132",
            "server": "envoy",
            "connection": "close"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad Request",
            "payload": {},
            "error": [
              {
                "f_error_reason": " ",
                "f_error_message": " ",
                "errorCode": "FIXUSER1090",
                "error": "Nominee Id is required to add address"
              }
            ]
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"same_as_user\":true}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1090",
              "passed": true,
              "message": "FIXUSER1090 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1090"
          ],
          "actualErrorCodes": [
            "FIXUSER1090"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_009",
          "caseName": "Create nominee address with non-numeric pincode is rejected",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:15.798Z",
          "endedAt": "2026-06-23T11:17:15.913Z",
          "durationMs": 115,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "same_as_user": false,
            "line1": "Flat 1",
            "city": "Mumbai",
            "state": "MH",
            "country": "INDIA",
            "pincode": "ABC"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "78",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"4e-e9sIpO7vvVjwlGKz5FTCW0Ki8oI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "101",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": []
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"same_as_user\":false,\"line1\":\"Flat 1\",\"city\":\"Mumbai\",\"state\":\"MH\",\"country\":\"INDIA\",\"pincode\":\"ABC\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_010",
          "caseName": "state field is uppercased before save",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.913Z",
          "endedAt": "2026-06-23T11:17:15.937Z",
          "durationMs": 24,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "same_as_user": false,
            "line1": "Flat 1",
            "city": "Mumbai",
            "state": "maharashtra",
            "country": "INDIA",
            "pincode": "400001"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "590",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"24e-IiE5CU92Hf+ioGib0OiHy1+lx4Y\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "21",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "CREATED",
            "payload": {
              "id": 5137,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "f_base_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "state": "MAHARASHTRA",
              "country": "INDIA",
              "address_type": "PERMANENT",
              "deleted_at": null,
              "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d2cca1851e2d26e8d57fff28ea4e76fcd51c0f93ca466b3eb14c071b755a1c0cc14a61bc459f0c8c34c0d9e8a372629f7",
              "is_default": false
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"same_as_user\":false,\"line1\":\"Flat 1\",\"city\":\"Mumbai\",\"state\":\"maharashtra\",\"country\":\"INDIA\",\"pincode\":\"400001\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Returned state should be uppercased",
              "passed": true,
              "message": "state uppercased"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_011",
          "caseName": "country defaults to INDIA when omitted",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.937Z",
          "endedAt": "2026-06-23T11:17:15.961Z",
          "durationMs": 24,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "same_as_user": false,
            "line1": "Flat 1",
            "city": "Mumbai",
            "state": "MH",
            "pincode": "400001"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "581",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:15 GMT",
            "etag": "W/\"245-36634Sn4zvI+gZNnVUWyd3y1O0I\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "21",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "CREATED",
            "payload": {
              "id": 5137,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "f_base_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "state": "MH",
              "country": "INDIA",
              "address_type": "PERMANENT",
              "deleted_at": null,
              "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d2cca1851e2d26e8d57fff28ea4e76fcd51c0f93ca466b3eb14c071b755a1c0cc14a61bc459f0c8c34c0d9e8a372629f7",
              "is_default": false
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"same_as_user\":false,\"line1\":\"Flat 1\",\"city\":\"Mumbai\",\"state\":\"MH\",\"pincode\":\"400001\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "country should default to INDIA",
              "passed": true,
              "message": "country=INDIA"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_012",
          "caseName": "Repeated create for same nominee upserts instead of duplicating",
          "service": "user-services",
          "method": "POST",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 201,
          "httpStatus": 201,
          "startedAt": "2026-06-23T11:17:15.961Z",
          "endedAt": "2026-06-23T11:17:16.034Z",
          "durationMs": 73,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "same_as_user": false,
            "line1": "Updated Address Line",
            "city": "Pune",
            "state": "MH",
            "country": "INDIA",
            "pincode": "411001"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "613",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"265-VcBiO/MlsCu9XGoPwN1Mnt1srwI\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "71",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 201,
            "message": "CREATED",
            "payload": {
              "id": 5137,
              "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "f_base_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
              "state": "MH",
              "country": "INDIA",
              "address_type": "PERMANENT",
              "deleted_at": null,
              "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d8068d362432ecd619d2d01b0dad5f7e8e4dc71110013a83ee2892dff3df63e86a317c00f1d81cf0c00121861b48906d1b3ea0cf3795afda8fc1a09ecc208976a",
              "is_default": false
            }
          },
          "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"same_as_user\":false,\"line1\":\"Updated Address Line\",\"city\":\"Pune\",\"state\":\"MH\",\"country\":\"INDIA\",\"pincode\":\"411001\"}'",
          "validations": [
            {
              "description": "Response status should be 200 or 201",
              "passed": true,
              "message": "Status 201 OK"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 201 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_ADDR_013",
          "caseName": "Get nominee address after upsert returns exactly one record for the nominee",
          "service": "user-services",
          "method": "GET",
          "url": "https://users-api.dev.fixerra.in/user-address/for-nominee",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:16.034Z",
          "endedAt": "2026-06-23T11:17:16.046Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestQuery": {
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "770",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"302-wRN+aBHzlstTb157+CroK39kW4E\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "SUCCESS",
            "payload": [
              {
                "id": 5137,
                "f_user_id": "bbbccb92-b868-40db-8407-4924962e8e81",
                "f_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
                "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
                "f_base_user_address_id": "90538095-c654-4999-84fd-dc67e3dfd043",
                "state": "MH",
                "country": "INDIA",
                "address_type": "PERMANENT",
                "deleted_at": null,
                "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d8068d362432ecd619d2d01b0dad5f7e8e4dc71110013a83ee2892dff3df63e86a317c00f1d81cf0c00121861b48906d1b3ea0cf3795afda8fc1a09ecc208976a",
                "is_default": false,
                "line1": "Updated Address Line",
                "line2": null,
                "line3": null,
                "sub_district": null,
                "street": null,
                "post_office": null,
                "pincode": "411001",
                "area": null,
                "city": "Pune"
              }
            ]
          },
          "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_user_nominee_id=475d6625-84f4-4da7-9c03-6d0359f542fd' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Upsert should not create a duplicate address row for this nominee",
              "passed": true,
              "message": "1 address row(s) for nominee"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_001",
          "caseName": "Update nominee via v1/update (USFB)",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:16.046Z",
          "endedAt": "2026-06-23T11:17:16.073Z",
          "durationMs": 27,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Mother",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "643",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"283-TmO6LBLZLiO35yzcgyL2QAR7Tqg\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "24",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Nominee Data updated successfully",
            "payload": {
              "is_default": true,
              "id": 10831,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "first_name": "test",
              "middle_name": "",
              "last_name": ".",
              "nominee_dob": "2005-11-21",
              "nominee_phone": null,
              "nominee_email": null,
              "nominee_pan": "",
              "nominee_name_consent": null,
              "nominee_relation": "Mother",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "created_at": "2026-06-23T11:17:12.000Z",
              "guardian_dob": "",
              "guardian_relation": "",
              "guardian_salutation": "",
              "guardian_pan": "",
              "deleted_at": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Mother\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Updated nominee id should match request",
              "passed": true,
              "message": "f_user_nominee_id matches"
            }
          ],
          "docsFile": "user-services/API_QA_PI_PUT_USER_NOMINEE_V1_UPDATE.md",
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_002",
          "caseName": "Update nominee via v1/update with nomineeAddress upserts the address",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:16.073Z",
          "endedAt": "2026-06-23T11:17:16.146Z",
          "durationMs": 73,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
            "nomineeAddress": {
              "same_as_user": false,
              "line1": "ADFJ",
              "street": "ASDFK",
              "pincode": "431122",
              "city": "BEED",
              "state": "MAHARASHTRA",
              "country": "INDIA"
            }
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "297",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"129-jNpySHRJ1ZT+J9Fmrc1iOd3v8qw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "70",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Unable to update nominee. One or more address fields are missing or incorrect.",
            "payload": {
              "is_address_present": true,
              "is_city_verified": false,
              "is_state_verified": false,
              "is_nominee_relation_verified": false,
              "is_pincode_present": true,
              "is_line1_present": true
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\",\"nomineeAddress\":{\"same_as_user\":false,\"line1\":\"ADFJ\",\"street\":\"ASDFK\",\"pincode\":\"431122\",\"city\":\"BEED\",\"state\":\"MAHARASHTRA\",\"country\":\"INDIA\"}}'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Should not return a 5xx server error",
              "passed": true,
              "message": "HTTP 200 (no server error)"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_005",
          "caseName": "Reject first_name with invalid characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.146Z",
          "endedAt": "2026-06-23T11:17:16.158Z",
          "durationMs": 12,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "Te$t",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "196",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"c4-X6XMD/1SiqZk3SZQkx9MAL+TIlU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "9",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1069",
                "error": "Please enter a valid nominee first name"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"Te$t\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1069",
              "passed": true,
              "message": "FIXUSER1069 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1069"
          ],
          "actualErrorCodes": [
            "FIXUSER1069"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_006",
          "caseName": "Reject middle_name with invalid characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.158Z",
          "endedAt": "2026-06-23T11:17:16.168Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "A1",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "197",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"c5-nkE2baDfMZRG8VK0+mhypSY/cP8\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1205",
                "error": "Please enter a valid nominee middle name"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"A1\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1205",
              "passed": true,
              "message": "FIXUSER1205 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1205"
          ],
          "actualErrorCodes": [
            "FIXUSER1205"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_007",
          "caseName": "Reject last_name with invalid characters",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.169Z",
          "endedAt": "2026-06-23T11:17:16.179Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": "D0e",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "195",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"c3-X/VCKSzEyRS2kQq2r3JvtQMi7nA\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "7",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1356",
                "error": "Please enter a valid nominee last name"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\"D0e\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1356",
              "passed": true,
              "message": "FIXUSER1356 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1356"
          ],
          "actualErrorCodes": [
            "FIXUSER1356"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_008",
          "caseName": "Reject invalid nominee_dob",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.179Z",
          "endedAt": "2026-06-23T11:17:16.239Z",
          "durationMs": 60,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "not-a-date",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "202",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"ca-eiW3jCKud9aQN9u5BBubRqxLIjc\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "57",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1072",
                "error": "Please enter a valid nominee DOB (YYYY-MM-DD)"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"not-a-date\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1072",
              "passed": true,
              "message": "FIXUSER1072 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1072"
          ],
          "actualErrorCodes": [
            "FIXUSER1072"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_009",
          "caseName": "Reject future nominee_dob",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.239Z",
          "endedAt": "2026-06-23T11:17:16.249Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2999-01-01",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "194",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"c2-ue3VX43dASmbpm+YepGpr2KuIH4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1094",
                "error": "Date of birth cannot be in the future"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2999-01-01\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1094",
              "passed": true,
              "message": "FIXUSER1094 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1094"
          ],
          "actualErrorCodes": [
            "FIXUSER1094"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_010",
          "caseName": "Reject invalid nominee_relation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.250Z",
          "endedAt": "2026-06-23T11:17:16.260Z",
          "durationMs": 10,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Cousin",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "190",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"be-OjnPZp7BitXUvDxYGkRz6nke5Tw\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "8",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1071",
                "error": "Nominee relation should be string"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Cousin\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1071",
              "passed": true,
              "message": "FIXUSER1071 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1071"
          ],
          "actualErrorCodes": [
            "FIXUSER1071"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_011",
          "caseName": "Reject invalid nominee_salutation",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 400,
          "httpStatus": 400,
          "startedAt": "2026-06-23T11:17:16.261Z",
          "endedAt": "2026-06-23T11:17:16.328Z",
          "durationMs": 67,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Father",
            "nominee_salutation": "DR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "192",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"c0-4Kbf/SiUHV6/UZ/WEtYqXa6sxh4\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "64",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 400,
            "message": "Bad request",
            "payload": {},
            "error": [
              {
                "f_error_reason": "",
                "f_error_message": "",
                "errorCode": "FIXUSER1077",
                "error": "Nominee salutation should be string"
              }
            ]
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"DR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 400",
              "passed": true,
              "message": "Status 400 OK"
            },
            {
              "description": "Response should contain error code FIXUSER1077",
              "passed": true,
              "message": "FIXUSER1077 present"
            }
          ],
          "expectedErrorCodes": [
            "FIXUSER1077"
          ],
          "actualErrorCodes": [
            "FIXUSER1077"
          ]
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_012",
          "caseName": "PAN provided lowercase is accepted and stored encrypted",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "positive",
          "expectedStatus": 200,
          "httpStatus": 200,
          "startedAt": "2026-06-23T11:17:16.328Z",
          "endedAt": "2026-06-23T11:17:16.354Z",
          "durationMs": 26,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0"
          },
          "requestPayload": {
            "first_name": "test",
            "middle_name": "",
            "last_name": ".",
            "nominee_pan": "abcpe1234f",
            "nominee_dob": "2005-11-21",
            "nominee_relation": "Father",
            "nominee_salutation": "MR",
            "is_default": true,
            "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd"
          },
          "requestQuery": {
            "f_code": "USFB"
          },
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "708",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"2c4-moYPVpSzJF4U3v5k3TiELMHiiuU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "23",
            "server": "envoy"
          },
          "responseBody": {
            "success": 1,
            "statusCode": 200,
            "message": "Nominee Data updated successfully",
            "payload": {
              "is_default": true,
              "id": 10831,
              "f_user_ref_id": "bbbccb92-b868-40db-8407-4924962e8e81",
              "f_user_nominee_id": "475d6625-84f4-4da7-9c03-6d0359f542fd",
              "first_name": "test",
              "middle_name": "",
              "last_name": ".",
              "nominee_dob": "2005-11-21",
              "nominee_phone": null,
              "nominee_email": null,
              "nominee_pan": "249a22814bf213a7ff2e68cfa58da9d3:590165e106e1a2c8480111854268324f",
              "nominee_name_consent": null,
              "nominee_relation": "Father",
              "nominee_salutation": "MR",
              "guardian_first_name": "",
              "guardian_last_name": "",
              "created_at": "2026-06-23T11:17:12.000Z",
              "guardian_dob": "",
              "guardian_relation": "",
              "guardian_salutation": "",
              "guardian_pan": "",
              "deleted_at": null
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=USFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJiYmJjY2I5Mi1iODY4LTQwZGItODQwNy00OTI0OTYyZThlODEiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijg4MGQyYWQxLTAxZmYtNGU1MC1hMTM1LTkzYzEyNDIwYWZjMCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMzg3LCJleHAiOjE3ODIyOTk3ODd9.Tk8anrb2r1p-QIN1oviiekNnwAQgGicPuHn9HSd5Ba0' \\\n  -d '{\"first_name\":\"test\",\"middle_name\":\"\",\"last_name\":\".\",\"nominee_pan\":\"abcpe1234f\",\"nominee_dob\":\"2005-11-21\",\"nominee_relation\":\"Father\",\"nominee_salutation\":\"MR\",\"is_default\":true,\"f_user_nominee_id\":\"475d6625-84f4-4da7-9c03-6d0359f542fd\"}'",
          "validations": [
            {
              "description": "Response status should be 200",
              "passed": true,
              "message": "Status 200 OK"
            },
            {
              "description": "Stored nominee_pan should not be returned in plaintext",
              "passed": true,
              "message": "nominee_pan not echoed in plaintext"
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_015",
          "caseName": "Update via v1/update without auth is rejected",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:16.354Z",
          "endedAt": "2026-06-23T11:17:16.358Z",
          "durationMs": 4,
          "requestHeaders": {
            "Content-Type": "application/json"
          },
          "requestPayload": {
            "f_user_nominee_id": "11111111-2222-4333-8444-555555555555"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"f_user_nominee_id\":\"11111111-2222-4333-8444-555555555555\"}'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"Access Denied.\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        },
        {
          "caseId": "UNITY_NOMINEE_V1UPD_016",
          "caseName": "Update via v1/update with expired JWT is rejected",
          "service": "user-services",
          "method": "PUT",
          "url": "https://users-api.dev.fixerra.in/user-nominee/v1/update",
          "status": "passed",
          "scenarioType": "negative",
          "expectedStatus": 401,
          "httpStatus": 401,
          "startedAt": "2026-06-23T11:17:16.358Z",
          "endedAt": "2026-06-23T11:17:16.363Z",
          "durationMs": 5,
          "requestHeaders": {
            "Content-Type": "application/json",
            "Authorization": "Bearer expired.jwt.token"
          },
          "requestPayload": {
            "f_user_nominee_id": "11111111-2222-4333-8444-555555555555"
          },
          "requestQuery": {},
          "responseHeaders": {
            "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
            "content-length": "136",
            "content-security-policy": "default-src 'self'",
            "content-type": "application/json; charset=utf-8",
            "date": "Tue, 23 Jun 2026 11:17:16 GMT",
            "etag": "W/\"88-8WLI+48VcsWgPO49PKC75cQhUwU\"",
            "referrer-policy": "origin-when-cross-origin",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "vary": "Origin",
            "x-content-type-options": "nosniff",
            "x-powered-by": "Express",
            "x-xss-protection": "1; mode=block",
            "x-envoy-upstream-service-time": "2",
            "server": "envoy"
          },
          "responseBody": {
            "success": 0,
            "statusCode": 401,
            "message": "Access Denied.",
            "payload": {},
            "error": {
              "success": 0,
              "statusCode": 401,
              "message": "Access Denied."
            }
          },
          "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token' \\\n  -d '{\"f_user_nominee_id\":\"11111111-2222-4333-8444-555555555555\"}'",
          "validations": [
            {
              "description": "Should reject with 401 auth error",
              "passed": true,
              "message": "401 \"Access Denied.\""
            }
          ],
          "expectedErrorCodes": [],
          "actualErrorCodes": []
        }
      ],
      "summary": {
        "total": 82,
        "passed": 80,
        "failed": 0,
        "skipped": 2,
        "running": 0,
        "pending": 0,
        "durationMs": 3963
      }
    }
  ]
}